{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "from __future__ import absolute_import, division, print_function, unicode_literals\n",
    "\n",
    "import random\n",
    "import tensorflow as tf\n",
    "from tensorflow import keras\n",
    "from keras.layers import Input, Flatten, Dense, Dropout, Lambda, MaxPooling2D\n",
    "from keras.models import Model\n",
    "from keras.optimizers import RMSprop\n",
    "from keras import backend as K\n",
    "from keras.layers.convolutional import Conv2D\n",
    "from keras.layers import LeakyReLU\n",
    "from keras.regularizers import l2\n",
    "from keras.models import Model, Sequential\n",
    "\n",
    "from tensorflow.keras import regularizers\n",
    "\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "(x_train, y_train), (x_test, y_test) = keras.datasets.fashion_mnist.load_data()\n",
    "#np.savez('mnist_dataset.npz', train_images = train_images, train_labels = train_labels, \n",
    "#                              test_images = test_images , test_labels = test_labels)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train_images :  (60000, 28, 28) uint8\n",
      "train_labels :  (60000,) uint8\n",
      "test_images :  (10000, 28, 28) uint8\n",
      "test_labels :  (10000,) uint8\n"
     ]
    }
   ],
   "source": [
    "#with np.load('mnist_dataset.npz') as npzfile:\n",
    "#    x_train = npzfile['train_images']\n",
    "#    y_train = npzfile['train_labels']\n",
    "#    x_test = npzfile['test_images']\n",
    "#    y_test = npzfile['test_labels']\n",
    "    \n",
    "print('train_images : ', x_train.shape, x_train.dtype)\n",
    "print('train_labels : ', y_train.shape, y_train.dtype)\n",
    "print('test_images : ', x_test.shape, x_test.dtype)\n",
    "print('test_labels : ', y_test.shape, y_test.dtype)\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure()\n",
    "plt.imshow(x_train[0, :])\n",
    "plt.colorbar()\n",
    "plt.grid(False)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "x_train = x_train.astype('float32')\n",
    "x_test = x_test.astype('float32')\n",
    "x_train = x_train / 255.0\n",
    "x_test = x_test / 255.0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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kPV1079/fy/PmjUraGMTCau2Lax+53nKeo3ZtAGEayKPpo4YXHXeptewYeAMV9zme6sNFed7NYfA22r33I9lG3qdlprArg0O0c4jZ511VnB89tlne9mat9iMaTNqM2m/7zYNBO9zXhsrV64M+vHx+eefn/q5dYk0PUIIIYTIBXroEUIIIUQuqHFG5tpm++23jx4zO+64Y6lPR9QirAq1hevY7MSZY62ZiSNBspqqYoVEOYKPM89aVXvaOQDVN/U2FthEcuqppwZto0aN8nJFRYWXramDTSSxoro8bzyfXbt2DfqxGd2acPIOm5S32mqroI1NWBZe7xzxY82WHHl63333edmawfbdd9+iY9t9xfcLnstu3boF/fbee+/Uc88jnOXaZvhnbIFsZunSpUVft5mbed3wHrUmx6efftrL7IpSn+Tzri2EEEKI3KGHHiGEEELkAj30CCGEECIXlI1Pj2h4ZK2y3qdPHy/36NEjaOOKyjFfHbb7c9bQWPX0tHB4IPQjYR8CDse25NWHx8LX2Pp3DB48uOh7li1bFhyzjwBnY7fzucUWWxSVs4bDK80AcOutt3rZZszlfXXccccFbezfxv4Y7777btCP/YT69u2b6ZyOOuqo1LZjjjkm0xgihDMe25D1sWPHennmzJlethUTdt9996Jjn3vuucEx+/7wuuFqDOWK7uJCCCGEyAV66BFCCCFELnBpBRqLdnbuAwALSnc6oghbJknSZt3dqofmst7QfDYeNJeNi1qfT81lvZE6l9V66BFCCCGEaKjIvCWEEEKIXKCHHiGEEELkgrJ46HHOHeGcS5xz6bUnwv7znXOti7y+qlj/yDjV6h8Z53TnXId192zcOOdaOeemFP4tds69R8ffXsd7BznnHktpu8M5992Utgucc5uY137jnDvJOXd42vvEutF85hvn3NeFuZ7hnHvdOfcL51xZ/GbkGe3L9aNcFvAJAF4EcHx9n0gNOR1A7h96kiT5MEmSXkmS9AJwO4Abq46TJPliPcY9M0mSN+zrzrkNAVwAwBZbOgDASACHA2gwm7Hc0HzmntWFue4BYH8ABwP4X9vJOad8b3WI9uX6Ue8PPc65ZgB2B/A/oIeewhPpaOfcQ865N51z9zqTacw518Q595Rz7qwi417onJvgnJvqnLs88vnXO+cmO+eec861KbzWyzk3vvDe4c65zdNed84dDaAvgHsLT9pNauXCNGKcc3vRXyavOec2LTQ1KzbfhXXQtyCvcs5d4Zx7BcBvUfmwOco5N6rQ3hzAtwFsA+AHAK4rfE73yLyOds7d5Jwb55yb7pxLz1Ao1kLz2fhJkmQpgLMBnOsqOd0596BzbgQqf/iK3nOdc02dc48XNEXTnXPHFV6/2jn3RqHvn+rtizVitC9TSJKkXv8BOBnAPwryOAB9CvIgAB8B6ITKh7OXAQwstM0H0BXAswBOpbFWFf4/AMDfAbjCex8DsGeRz04AnFSQLwNwS0GeCmCvgnwFgJvW8fpoAH3r+1qW0z8Avwfwq5S2EQB2L8jNUJkZPDbf/voW5uxYGms+gNZ0fCSAKwryXQCOprbY/A0pyHsCmF7f16/c/mk+8/ev6n5qXlsOoB0qtdsLAbQsvF70ngvgqKq5KPRrAaAlgLewJnp4s/r+rg31n/Zl9f/Vu6YHlaatBwryA4XjKl5NkmRhkiTfAJiCygedKh4B8M8kSf5VZMwDCv9eAzAZwPaofCK1fANgaEG+B8BA51wLVG7CFwqv3w1gz7TXM39LwbwE4Abn3HmovKZfFV6PzXcVXwN4ODL2QQCetC9mmL/7ASBJkjEAmjvnNoPIiuYzP7C2/ZkkSarqi6Tdc6cB2M85d41zbo8kST4CsBLAZwDucM4dCeDTOjv7fKF9WYR6fehxzrUCsA8qF/98ABcCOK5K3Qbgc+r+NcJaYS8BGEx9g6EBXJWssXNunSTJPzKckpIWlQDn3DmkZu2QJMnVAM4E0ATAeLfGgT0231V8liTJ15GP6w/g1Rqcpp17rYUUNJ/5xDnXDZXzWFV46RNuRpF7bpIkswDsjMqHn6ucc5cVfnz7o/JH9XAAT9Xdt2i8aF9mo741PUcD+FeSJFsmSdI1SZLOAOYBGJjhvZcB+BDArUXangZwhqv0F4JzrqNzrm2RfhsUzgEATgTwYuEvkeXOuT0Kr58C4IW01wvyxwCq7KXCkCTJX+lmuMg51z1JkmlJklwDYCIq/yqsKf7aO+d6AHiTNqtvW8f8AUCVr8FAAB8V+osiaD7zh6v0d7wdlS4AxX6oit5zXWVU66dJktwD4E8A+hT6tEiS5AlUOsj2qptv0bjRvsxGfXvdnwDgavPaw6h8ABm6dve1uADAnc65a5MkuajqxSRJRjrndgDwckERtAqVvkNLzfs/AdDDOTcJlXbOqnKxpwG43VWG6M0F8MN1vH5X4fXVAHZNkmR1hnPPMxc45/ZG5V8Zb6BSTbprDcf6O4AnnXPvA3gc4V+NDwAYUlDvHo30+QMqN+o4AM0BnFHDc8krms/GSRPn3BQAGwH4CsC/AdxQrGPknrs1Kp1cvwHwJYCfoPIH8hHn3Mao1BD9vNRfJKdoXxZBZShEo8E59wwqHdvfr+b7RqPSGXBiSU5M1AjNpxDlR0Pfl/Wt6RGi1kiSZP/6PgdRe2g+hSg/Gvq+lKZHCCGEELmgvh2ZhRBCCCHqBD30CCGEECIX6HAiZLQAACAASURBVKFHCCGEELlADz1CCCGEyAXVit5q3bp10rVr1xKdSjpfffVVcLxy5UovV1RUeHnDDTcM+m288cZe3mCDNc93drxPPlmTWLRp06Ze7tixY9CPx6gr5s+fj4qKimJZp9eL+prLvDNp0qSKJEna1Pa45TifH3/8sZe/853vBG3f/va3M43x+edrksd++umaagWbb775ep7d+qO92bgoxd7UXNYPsbms1kNP165dMXFi9ULsbXRY8aoRcZYuDXMKPv/8814eMmSIlzfbLCzjscMOO3iZb7rLly8P+r388ste3mWXXbx85ZVXBv2aNMlWQJ2/c02+L9O3b9/1en8aNZlLsf445xaUYtzamM+0SM6aruEXXliTiLV79+5BW6dOnTKNMW/ePC/z9zvmmGNqdE61ifZm46IUe1NzWT/E5rIkeXqy/uizlubPf/5z0Pbss896+bPPPgvaWBvzxRdfeHnChAlBv2HDhhX93I022ig4Zo3OK6+84uXddtst6NeyZUsv77XXXl7+2c9+FvQrh79ChaguvG9jWs2FCxd6+c477wzarr/+ei+zRrY24HM65ZRTgrZrrrnGy+eff36m8b755pvU8YUQjRPtciGEEELkAj30CCGEECIX6KFHCCGEELmgzmtvzZkzx8uHHHKIl7fYYougHzslWx8cjtJiB2XrWLhq1ap1vgcI/YI++OADL9soL44keeaZZ7z80ksvBf1+9KMfefnII4+EEOVIVp+W3r17B8dvv/22l3lPAMAmm2ziZd7T1i+P/d54r7//fljDcPXq1V7mQAI73q9+9SsvcwDCvvvuG/S77777vGy/L18P+fekYx3e065bzJ8zVv6oJo7z48aNC47ZH/Ott97y8rbbbrven9WYqe1ghqycfPLJXv7FL34RtPXp08fLfL+xv+NZ0c4WQgghRC7QQ48QQgghckFJzFsxVdhvfvMbL7dv397LNsybTUt2vG99a81pszqOzVlAqP5imc1ZQJickE1p/DlAmOyQVbp2vL/+9a9ePuCAA4K2Zs2aQYj6ImtY+q677url6dOnB23t2rXzsl37vFe5ze6lxYsXe5lNWjYXFicxZJMW70V7zPeO+++/P+jHCQ7/+9//Bm18PWoz11aeyHqtanJNR48eHRxPmzbNy2xyBYBLLrnEyzyXI0eODPrV1ERSjmRds7F+fMz9subb+/LLL4Nj/j3l+Tr66KODfrNmzfKy/R3nfVobe1GaHiGEEELkAj30CCGEECIXlDx6y0ZjsFq7efPmXrZqMVaHs0oaCM1RX3/9tZdt7S0+ZtW1jfzg8blfLGqMzVRW1c7n9+ijjwZtJ554IoSoL2Lq4eHDh3t5/PjxXu7cuXPQj027dt/y+GkyEO59Vp3biLI0c5zdwzw+79suXboE/Z5++mkvP/nkk0Hb4MGDU883D2Q1YdjX7X03jX/9619e5nI/Y8eODfrdfPPNXu7QoYOXX3/99aAfR2JxhA8A3HTTTV7u1atXpvNr6KSZpmL9+PfTwnvRRjKzGZr72d/MMWPGePmII47wsq29t/3223uZ3UMsdvyaIE2PEEIIIXKBHnqEEEIIkQv00COEEEKIXFByn57ly5cHx+zTw7Zgm9mV/WyszZhDYdPCTIHQ1sh2TGufZGJ2UfYz4szNrVu3Tj0/rhYPyKdH1D0xvzeGs4fzmv7444+DfrFs6ezjE9tz3JY1+3GsX9p9wIbU87kffPDBQRv7H3I2aXvuNvxerGHmzJletteNQ84nTpzo5WXLlgX9TjvtNC/vtddeXrZ+OzwGy0DoMzJ79mwvb7311tHzbyxk9UmL3Q+4LeZLw3vv3XffDdp4j2266aZetr5E119/vZc7duwYtNV2+ghpeoQQQgiRC/TQI4QQQohcUHI97dSpU4NjVnmyqcuGqvKxDQnnMMbu3bt7uWvXrkE/Ln7IIXZNmzYN+rHqjs1snEESAEaMGFF0vBUrVgT9OKMkh68LUR+kqbAPO+yw4JhNP5ySYf78+an9rMkpTQ0eC42tCfZzWe3N39feV/ieYO8rbH45/vjji47XmMlqOrApRLjYJ5sFW7RoEfQ744wzvHzjjTd62ZozuODk0qVLU8+Pw5wnT54ctHFBaJ7nvJi3shYTtixZssTLbHb88MMPg36TJk0q+h5r0mzZsqWXeW189NFHQT9bLLyUSNMjhBBCiFyghx4hhBBC5IKSm7dYTQwAe+yxh5fvvfdeL9uihlwwjtWYMazadfXq1UVla3Li7K5s+rKRVldddZWX+/Xr52U20wGhCn3u3LmZzl2Iuubll19ObbPRlExMVR7LwszEMsZmIWuhRHuuHF1mszpPmDDBy3zfykt2ZmuC5GvH1yBW2Jnv47ZA6N/+9jcvP/XUU14+8MADU8+pbdu2qW1s+mIzCgC89957Xr7zzju9vPvuuwf9dtxxx9TxGzKxuZwzZ46XL7jggqAfu2pwtNWMGTOCfuxi8sYbb3h50KBBQT82XfI9xRZ6jUVUZyWrCV2aHiGEEELkAj30CCGEECIX6KFHCCGEELmg5D49F110UXDMtsW9997by7179w76rVy50svWp4dt9lytuVWrVkG/tMyx1kbP43EonfUz4nBH9kfi8F57HtZ2mXdqWv03zb+gptlyOaQzazinhf1D+HMbig8Ip10AwuzFsevIcxjLyMxjxOztsRDztPUSCyPnNWHD0tmvwKauuO+++7zMGWLzQiwNAGPXDc/R888/7+WTTz456Hf77bev7ykGcBg1/14AwM477+xlzs5sfdVsKHZjIZZBmdO83HXXXUGb/Q2tLm3atAmO2W+O/aeOO+64oB/7CMXu/dwWq5gQQ5oeIYQQQuQCPfQIIYQQIheU3LxlwxGfe+45Lz/88MNeHjlyZNCPi87deuutQRuboLiYnA2lTDODsAoeCNWfrEqz6lkO4bv66qu9bE1Ym2++uZeHDRsWtHH2UhtmmQeymn6s6jLtfVlVmnYN/eEPf/DyokWLMo1hiamQy5XXX3/dy1w0Fwgz6LJamveHbbPmo7TiptZsxW2xMPe0YoOx4sK8Jmw/LoBs923eC4lm3Zt8HwSAPffcs6hs4bQhvG6ypjaw/bhALN9zgdDtYfDgwUXfAwALFixI/ew8YM1ZvI94L2e917HLChD+xvMcvfDCC0G/X//6117OWgTVktVUKU2PEEIIIXKBHnqEEEIIkQv00COEEEKIXFByI/bFF18cfiDZzTlMbYcddgj6Pfroo16+4oorUsdnW6O10af5DVjbfZq/jy1XwSHwAwYM8DJXjwVCu6at6ptHP54YaTb7rP4VHGYMAFOmTPHygw8+6GXre8KhlSeccIKX77///kyfC4Qh3tdee62Xf/e732Ueo67htW79bBj2j7OhzDxnNmUAt/H41reG/QV4/FjIesyen9bPhr/y/cJ+r4ULF6aOL9LJOpcMt9W0ij37pNm0IWnr0Pp95t2PK+Y7GfPj4X3P1/DUU08N+vE9mD+LfXGB0N/LpkRguOTFOeecE7RxyYsY0vQIIYQQIhfooUcIIYQQuaDkur0jjjgiOOaQ9UmTJnmZwwoB4Ac/+IGXuZouAHTp0sXLrFq1oeisMotlhGX1HFdIt+q9jz/+2Msc6njjjTcG/bjNVhrmzNM2C3VjJRZ2mhau+vbbbwfHrCbl6uA21UG3bt283KlTJy/bMNv58+d7+Yknnkg79SgPPPCAl1955ZUajVHXTJ482ctsngPSQ8JtyDqrn60JOE0lbuc5LcO2NTnxvo1l4k7b3/Z1vifY7LFsIuH5ZFO2WJs085R9nddN7H4cu18wvPbuvvvuoO2QQw7x8oknnuhlawaLmVLyQE2zx6dlsefrDoRh6lzBnVMKAOFzQefOnYM2+wxRBaefAEJXB66YYJGmRwghhBC5QA89QgghhMgFJTdvzZw5Mzhm8xFHPe2yyy5Bv5deesnL06ZNC9pYJReLEEjL9BorepkWiWDPl1WmvXr1CvpttdVWXraquu222y71s8uRWGFONo9YEwgTU6GyyvOSSy7x8tChQ4N+XByyffv2Xu7fv3/Qj02cn376qZdt0dr33nvPy5deemnq+bFp1Z7TL37xCy+/+eabXmazLRAWP6xveO3bfcDmiKwZWO0Y/D7O3GxNHWlmq9jeZOya4kKSnFnaRuuwWcx+Rx7jpptu8nJ1IvrKnayZzktNLMIurZ+FswlbV4GJEyd6+Uc/+pGX58yZE/Tbbbfd1n2yjYys5sPYvSLruuHfP3YPWbZsWdDv0EMPTR2jXbt2XuY9a7M/8+9CDGl6hBBCCJEL9NAjhBBCiFyghx4hhBBC5IKS+/RYGyrbb999910v26zGsdBxDjtkW6PNrpnmnxOr5Mx+IPZz2b+Dz8/6DbC/CPusAMDixYu9zOHV5UTMlsvE/HgYDkfkqrtAGGbI2ap79OgR9OO5/eijj7y8cuXKoB+HoLIfENv4gXC9cXjjddddlzreTjvtFLSxDwj7r9jw+HLChuwyaVWV7Tzzmoj5YzAx37usxMLoeZ/x/rZh+ZxV3Z4Tj8nz2ZioLx+eGFkzMnO2dQD43ve+52XOqg4Ajz32mJeffvppL9v1YH0u80BN1kBaiPq6eP31173cs2dPL9tq95z+w97TL7vsMi/zb+3+++9fo3OSpkcIIYQQuUAPPUIIIYTIBSU3b1nzCBd+ZJOFNQmwmcmq1lgtzep1+1lp4da2X1qRPKsK5bbWrVsjDQ7Hs5ljFy1a5OVyNW+x+jOr6vnmm2/28m233Ra0LVmyxMtWnbzjjjt6mdcDvyd2fjFTJc+rzb5rVahV2BDW4cOHp57HH/7wBy//9a9/9fKWW24Z9LvnnntSx6hrrrzySi9b8y0fs+nOhpdyqHDWEPPagPe6NW/xOuVzt1na2bzH9xggNFn/97//9XK5hHk3JnguY/eYa665xst2Hf74xz/28r///e+gjdfowQcf7GXOxA5kN9HnhbRwdvs7llbM2+4VLgLOv/HVuW/88Y9/9DL/Bh9zzDGZx2Ck6RFCCCFELtBDjxBCCCFyQcnNWzZCIs38wIXJgLAwYMy8FVM1Z83InKbWtyo9/lzOEskmOyBU/dkxOCtlucBFKAHgmWee8fJbb73lZRvRwqY6/l4cIQOEhT858goIr7dtY9j0wNc0Zqpk04ZdQxyVxfNnC4dylk9bXLNjx45e3nbbbb1szSZDhgxBuTB37lwvs+oZCOeCTbvWXMffry7NW0xsD/NatOatWDZ3Nrl07dq16HtE7cD3SGty+v3vf+9l3utt27YN+nEk6DbbbBO08bzzfaohmrN4rfOaje09e7+rafRV2vvT9kTfvn2DY86azFF0MaxbCe9LvhfFXExiSNMjhBBCiFyghx4hhBBC5AI99AghhBAiF5Tcp8fCNlq2C9qMzNYvIo00HyH7WWwLtbZ8Ps5a/Zf9IWKh8rEs0fXJ0qVLccsttwAAhg0bFrSxP1UsCy7bzTn7sb0enEXTzhH76rAvkPWF4rXCvkX2s9gvheeBv5Mdg23IXKEbCNeD9TtjPxIev9z8tjhDOJ+ntYmnZSO3c5aW6RxID3m1YcnWbp8Gj89jxEJj2TfMrln237LzxHv1nXfeyXR+5YK9r2RNNVHbn83zYueY9/rMmTO9fOGFFwb92D+Os/Zff/31Qb+YrxVnb2Y/tl133TX1PaUmlvogVvm8JilEapuYT9CRRx7pZc66DAD//Oc/i77H/gbz+Pbez76UvXv3XvfJrgNpeoQQQgiRC/TQI4QQQohcUHLzVtZwT2s6sCouJi27sjUlpYW2x86Jx7AqY/4sNhPYEG02sVjKpZBhq1atcMoppwAA+vXrF7S99NJLXp4+fbqXFyxYEPRj88Dy5cu9bMOE+ZpatSYXca2oqPByzKTCanP7WWlhnLbQJpvj2ARi1ce8VmxqAj4PVt3bUPDvf//7Xr722muLnl8pGTt2bNHXYyYnNm/Z782Zca35KE0VnzW1RE3ha85za9cRm1rtPYa/Z20USK1LYmaPWGhzbVz7NJcA3hNAaGa94YYbvLzPPvsE/ThtxIMPPlijc+LvFTunuiSWPb4m8/Dmm28Gx3feeaeXrcnQZqSvImZm4t8qew/43e9+5+UPPvjAy9ZVIo2YuSyWoqZ79+6p78uaPkOaHiGEEELkAj30CCGEECIX1Hn0VlZYtWZVt2kZKmMq6Zj6MK3gqDVTrFixwsts3rLZQDlywKr/6yuDbTGqzoWLfgLAgAEDiva3Zrt58+Z5efbs2V62GVY5I6o176XNpVVxcgFBLlzHrwOhqZEjsawJktXcMZU3m3xic8eRUGxeAeo/o68tLFqFXd9p2V553QOhuSBmUk7bV/aYzy92jflz7TVNM8fZ785mWGu+tt+lsVDb6y8WhRQzs3Gm5Q4dOnh56tSpQb+hQ4eu5xmGa4/N5nWdkTlJEm+Cj2WP57XHpiMAuOOOO7xso5wZvh8/8sgjQRtn1k87B3uOvI84ig4IzY5PPPFE6jnx7yRnwY+Z1XiPAuH6GjhwYOpnybwlhBBCCEHooUcIIYQQuUAPPUIIIYTIBSU3YrP/BRCGjMZ8cNgWaO3ybDeOhb6lZby0tr+08PiYPw6fe5cuXYJ+EydO9LL1myiXjMwbbrih93Ox1cPff/99L8fspC1btvTyoEGDvGz9dtJ8SoB0Pw27NnjMtPB1IAxh5/fwugPCMMtYVW4+d7tOOIMxr3PrG2KrlNc1e+21V9HXra9Hmo+BnQu+JjG/IB7fXjs+Zlu/vf5p4dB2PD6nWMZoHr++stuWgpifDftkLVmyJOjHe533cIysPkL/+7//GxzzmmI/nuHDh2caL5bGJJb5nn166hrnXPT+V4zJkycHxzxnsXskV6HnVCAAMGLECC8feuih0fMtxgknnBAcH3TQQV6OhZHz3s7K4sWLg2P2kdxtt92qPZ5Fmh4hhBBC5AI99AghhBAiF5TEvMUmh1gWyubNm6eOwWroWCgpjx9TjWcNhY2ZztLU9V27dg368XnE1Ovlgg2xtsdpsAkyZjZg05INe0+7HtYMmFYUNvY+ni9rZu3YsaOXeW1YFXrse6WtG3v9ODy3Pnj88ceLvm7Nt3zM5r927dql9rP7Km3t22vHZrE0kxgQXuNYP563WGbltDkrdtyQiJmc3njjDS/b0GO+B9sizzXJXsxZl8eNGxe0sbk5LUt4jJg5Nta3PovHrlq1CmPGjCl6HkcffbSXec2yydHCaThsFQM2Jdl70Pnnn+/lmHmLOeyww7w8Y8aMoM2GxNcmXDAYyL4OFbIuhBBCCEHooUcIIYQQuaAk5q1YcU9Wf7OJwRLLvpqm1rTqrbSILfv+tMyx9nPZzMYRPzYjc8y8VU4ZmdcXVqfGvPStGlbULU899VTR163ZmE1OvL5vu+22oN9JJ53kZWue5MKuvPatKY3bYns97T02QpCPWT1uI9e4aK7N0p2GjXiy5r5SUHWfyBopFYveqo2Il6ycddZZXp41a1bQ9thjj63X2LHM/BZeK7YwZ13y+eefY+7cuQCAH/3oR0HbpZde6mXeN2witG0cCWZNlfy+WNHOiy66yMtnnnlm0O/Xv/61l0eNGuXl/fbbL+hnM+HXJta8Z10T0si6V6TpEUIIIUQu0EOPEEIIIXKBHnqEEEIIkQtKnpHZ2tnYthgL5c2aVTUtpLXY+6rIWiU4ZjNmv4EePXoEbbHK743Jp0c0DDhNANvHbYhy2n454ogjguPzzjvPy/fdd1/Qxr5Ay5Yt83L79u1Tz4mxfhu8N9mfwWbY5vcNGDDAyxyqCwAvvPBC0bGLfXYVjz76aHDMfiulorqV0WP9+Z5z8MEHB23sB3LxxRcHbSeeeGKmz77iiiu8zP5jF1xwQdBvp512yjRebcC/C7Zqd13SqlUrnH766QCAv//970EbpxLgc7T7kCur87rnTNsA0Lp1ay9bnzdeA9ddd11RGQDatGnjZfbTvPzyy5EG/8bF0ghkxX6vrL53WT9bmh4hhBBC5AI99AghhBAiF9S5eYvVbLFCjBw+yyo3IFTRx7KophVNjBU65fOzKvi0Apax0Ht7frGieUKUAt6DbH7Kqja2XH311UXlGFbdzufBe87eL/iYw95j2dyzEssmzRlyuVgjUHrz1scff4zRo0cDWDvUn+99XPDXZuDl+yd/F5YBYPbs2V6+/vrrgzYOU+ZiliNHjgz6/fnPf/YyFy3NujZqSsykx/d4WxS3vrCZ+8ePH+9lLlptiyhzygT+XhzKDoS/V7FrwylEYteGzWox02R1TbHA2r+tbEqzGZnTUkTYe4pd22lI0yOEEEKIXKCHHiGEEELkAj30CCGEECIXlMSnJ638gyWWXpptftZ2x6GrH374oZdtWv2s4ecM20yt38Ann3ziZU6VbW2JfO7Wh8faa4UoNf/4xz+8PGzYMC/zegZqP/SUsXskq/29tmG/Cq4kD4Q+TnzP2X333Ut+XswXX3yB+fPnA4D/v4qlS5d6mf2i+J4IhH4bfB/s3Llz0O/kk0/2cs+ePYO2Z5991stcMX3atGlBv4EDB3qZ/YKsPxLfF0vtZ8M+IgceeGBJPysrv/nNb4Lj+++/38tcUsL+VvHvJP8m2WvIvjX2d4f91Xh869/Ka8qmo2DW914R+z22v/dpPj0x39wY0vQIIYQQIhfooUcIIYQQuaAk5i3OhmlVnFlNTkcffbSXV65cGbRxCDt/Vix8nfvFqrGzqs6ay1q0aOHlvn37pn4Wq5rtOfF5CFEXsNmGq4zb6tu8z7Jm440RSxPBx7GQ17Q2q1Ln41gI/EEHHeTlO+64I2jjNBTf//73vcyVp+sCzuKbFTbzA8DChQu9zJmx+XUgvFa8NoDQpMVrw2Z15rVizWdMXYaOs3nrhhtu8DJXNq9rbNg3X3vOZH3ZZZcF/SZMmOBl+1tY2+yxxx5e3nvvvUv2OTGTGK87IL1yQ01C5QFpeoQQQgiRE/TQI4QQQohcUBLz1urVq70cU2vbwmKM9XRvSLDazX7/2HcWotTEMr9y5IY1gzAc9WUzATOswq7taLAYbEK2JupevXqltrF569xzzy3R2ZWGVq1aRY/zBkfpNYS5ZLMry5ZZs2Z5edKkSUHb1KlTvcyFZIHQxMm/T7aawO233170c61LyPru55ip86KLLgqOt9tuu6L9rOtMVqTpEUIIIUQu0EOPEEIIIXKBHnqEEEIIkQtK4tPD1X+33XbboI1DGgcMGJA6RiycvaahanUFh3DOmzcvaNt5553r+nSE8PC+uu6664I23rft27dPHaNcqlanEbs/cLoLDmsGwu9Vlz5IorT83//9X32fQq3Bv6f2t/WEE04o2efW9m9ubLz99tsv0xixFDUxtLOFEEIIkQv00COEEEKIXOCyFuIEAOfcBwAWrLOjqE22TJKkzbq7VQ/NZb2h+Ww8aC4bF7U+n5rLeiN1Lqv10COEEEII0VCReUsIIYQQuUAPPUIIIYTIBWX70OOc+9o5N8U5N90596BzbpN19L/LOXd0QR7tnEsvgy7qHOfcb51zM5xzUwvzmp6voPpjD3LOPVZb44k42puNl1Ls0yxzrnVRGjSfa1O2Dz0AVidJ0itJkh0BfAHgx/V9QlU452qWICCnOOd2BXAIgD5JkvQEsB+Ad+v3rCpxzpUkV1UjR3uzEVLO+1RUH81nccr5oYcZC2Br51xX59z0qhedc79yzv0+9kbn3AnOuWmFv0qvKbz2E+fctdTndOfcXwryyc65VwtPxX+ruok651Y5565wzr0CYNcSfMfGTHsAFUmSfA4ASZJUJEmyyDk33zl3uXNucmGOtgcA51xT59ydzrkJzrnXnHOHFV7v6pwbW+g/2Tm3m/0g51y/wnu6RcY5vaChGAFgZN1dhkaJ9mbjIW2fXlbYQ9Odc393hcxyhb/mrynMySzn3B6F15s45x4oaBeGAvBZIJ1ztznnJha0D5fXx5fMEZrPIpT9Q0/hL/HBAKbV4L0dAFwDYB8AvQD0c84dDuAhAEdS1+MADHXO7VCQd0+SpBeArwGcVOjTFMD0JEkGJEnyYk2/T04ZCaBzYSPd6pzbi9oqkiTpA+A2AL8qvPZbAM8nSdIPwN4ArnPONQWwFMD+hf7HAbiZP6TwEHQ7gMOSJJkbGQeo/HE8LUmSfUrxhfOA9majI22f3pIkSb+CZq8JKrUHVXwrSZL+AC4A8L+F134C4NOCduGPADgN/W+TJOkLoCeAvZxzPUv5hXKO5rMI5fzQ08Q5NwXARADvAPhHDcboB2B0kiQfJEnyFYB7AeyZJMkHAOY653ZxzrUCsB2AlwDsi8oJnVD47H0BdCuM9TWAh9frG+WUJElWofK6ng3gA1T+iJ1eaB5W+H8SgK4F+QAAFxfmYDSAjQF0AbARgCHOuWkAHgTwXfqYHQD8HcChSZK8s45xAOCZJEmW1dqXzBfam42QyD7d2zn3SmHf7QOgB72t2P7dE8A9hTGnAphK/Y91zk0G8FphHN7DohbRfBannP0ZVhf+ovM4575C+KC28TrGiBUMGQrgWABvAhieJElSUPPdnSTJb4r0/yxJkq8znLcoQuHajQYwurDZTis0fV74/2usWY8OwFFJkrzFYxTMJUsAfA+V6+Azan4fleuhN4BF6xhnAIBP1vtL5RftzUZKkX36I1T+Fd83SZJ3C3uQ57bY/gWAtRLAOee2QqU2t1+SJMudc3dh3etErAeaz7UpZ01PMZYAaOuca+Wc+w5CtVwxXkGlyq11wf5/AoAXCm3DABxeeG1o4bXnABztnGsLAM65ls65LWv7S+QN59x2zrlt6KVeiGcpfRrAz8jW3LvwegsA7ydJ8g2AUwCw0+oKAN8HcKVzbtA6xhG1j/ZmAydln1b9wVDhnGsG4OgMQ41BwfTonNsRlT+yANAclX9s9IsQxAAAIABJREFUfOSca4dK06goEZrP4pSzpmctkiT50jl3BSpvmPNQ+ZdgrP/7zrnfABiFyr8sn0iS5JFC23Ln3BsAvpskyauF195wzv0OwEjn3AYAvgRwDpRGfH1pBuAvzrnNAHwFYDYqVa5pP4z/B+AmAFMLDyzzC31vBfCwc+4YVM5poK1JkmSJc+5QAE86586IjCNqGe3NRkHaPl2BSr+t+QAmZBjnNgD/dM5NBTAFQNUcvu6cew3ADABzUWm2FKVD81kElaEQQgghRC5oaOYtIYQQQogaoYceIYQQQuQCPfQIIYQQIhfooUcIIYQQuUAPPUIIIYTIBXroEUIIIUQuqFaentatWyddu3YtyYl88803wfF7773n5U8+CZPntmrVystt2rQpyfkAwPLly4PjiooKLzdv3tzL7dq1K9k5zJ8/HxUVFbHstTWilHNZaj77bE0i5pUrVwZtG264Jl/hBhuseaZv1qxZ0G+jjTYq0dnFmTRpUkWSJLW+aBvyfDZUtDcbF6XYm5rL+iE2l9V66OnatSsmTpxYO2dlsA82l156qZfHjRsXtJ166qle/ulPf1qS8wGABx98MDi+4447vDx48JrkkxdccEHJzqFv374lGbeUc1lq3nprTVWJp556Kmhr2bKllzfeeE1G9N12Cwuyd+zYcb3Pg3NcFZI+rxPnXEmS6TXk+WyoaG82LkqxNzWX9UNsLmXeEkIIIUQuqNcyFD/+8Y+9/MILLwRtbO6y5iPWAt18881e7ty5c9Bvm23WlB1p0aKFl5ctC4trsybpiy++8LI1nbRv397Lt912m5dHjBgR9BsyZIiXu3XrBpGNrJqTn/zkJ15+9dVXg7avvvrKy59//jnSOPPMM738+uuve/nTTz8N+u25555evv7664O2Jk2aePnrr9fUu2QTmxBCiPJBmh4hhBBC5AI99AghhBAiF+ihRwghhBC5oM59ep5//nkvz5s3z8u9e/cO+rE/jQ1n/973vuflDz74wMtz5swJ+nFEGEdaTJ06Nej3rW+tuQytW7dOPaelS5d6eauttvLyihUrgn6//OUvvTx8+HCIbGT16Vm8eLGXN99886CNfbK+/e1ve9nO0T333ONlDoG3oewzZszwMq8TIPQn489lXx8hhBDlgzQ9QgghhMgFeugRQgghRC6oc/PWM88842XOVGnDi9nM8OWXXwZtbIJikwObR4AwjJjNFNb8wNl6N910Uy9zVmgA2GSTTYp+VqdOnYJ+bJp78cUXg7aBAwdCFIfNmJxNGQjNR++8846XmzZtGvTjkHU2b9qMzGwWYzMrm8SAcJ5//vOfp567PV8hhBDlh+7UQgghhMgFeugRQgghRC6oc/PWokWLvMxFO2PmLTZT2b5sjrAmDDaJMDZjLpujOCMvm7Ps+GzOsOfHkUcyb8Vh85GN0mM46o/NVmyOjI1h1wKPwevJmlJ79uxZ9D1AGEW2xRZbpJ6DTF9CCFEe6G4shBBCiFyghx4hhBBC5AI99AghhBAiF5Tcp8f6N7D/DFc+ZxkIs+Ra2O+C/WlWrVoV9OPwZfb9sX4bfI78Hnvu/L6NN9449fzYp2fWrFmp/UR4rWy4ODNhwgQvs//MZpttFvR76623io5t/bM4kzfDfmYAcNhhh3l55MiRQdvOO+9c9Jxs6gQhhBDlgTQ9QgghhMgFeugRQgghRC4ouXmLs90Coclo9erVXrZmBc6Ya81RH3/8sZc5I7MNS2YzA5vLrPmBw+PZvGX7sbmEw5Ct6YSxWZ1FSNYio6NGjSr6ujVv7b///l6eO3du6ths3urVq5eXp0yZEvTjNXXUUUcFbVtuuWXRc7IpEUR25s+fHxwvXLjQy0r3IIRYX6TpEUIIIUQu0EOPEEIIIXJByc1b77//fnD8ne98x8tsIrKmJDYd2IzHnIWX32ejt9hsxZ/FrwOh+YyLkVozBUcXtW/f3ss2Uy+fR6tWrYI2Nqu0adMGeYfnlk2VFjZVcdbs8ePHB/1atmzpZV4bNjpw0KBBXmYTygknnBD0u/LKK1PPKatpTsR58MEHvXzppZcGbQcddJCX2ZS54447lvSc7rnnHi9vu+22QVv//v1L+tlCiNIhTY8QQgghcoEeeoQQQgiRC/TQI4QQQohcUHKfng8//DA4Zl+Yjz76yMtjxowJ+p100kle7tChQ9DGfkJcIZv9cYD0DL/Wd4T7cci67de2bVsvsy+JraK9ww47eJkzUAPAm2++6WX59KSHd48dOzY4Xrp0qZfZn8Our+XLl3uZ0x7YDMycQXn27Nle5rkT1YdTUvC+sKkbzjvvvKJt3bp1C/pNnTrVy2effbaXx40bl+l8rJ/fnXfe6eWKioqgjVNoNGvWzMv2/tNYiaXoiHHzzTd7uU+fPl7m+yUQ3jP53tezZ8+gX8eOHTN9blauuuoqL/fo0SNo+8EPflCrnyXKH2l6hBBCCJEL9NAjhBBCiFxQcvOWNStwNmXOsmv7TZo0yct77rln0MYqbw5jteYsVrVzmLrN3MwmLc7cbEPROYyeszC/8sorQT8eo1OnTkHb66+/7uU99tgDeSdNhc4hw0Coeuf5sikB2MSZlmnb9mOOOeaY4PgXv/iFl2+44YbUc1f4eiVpxVaXLVsWHHNh2K5du3o5ZhLhe4RdH3vvvbeXH3vsMS8PHz486McmLLv/TjvtNC+XOiS+HLGpQdJSSDz77LPB8fHHH+9lNlvZa8/Zzvn+eeuttwb92MTZr18/L3OBXyA0RdtM3s8995yXFyxY4GWef0DmrazYfc1rgOere/fuqe8rl/uiND1CCCGEyAV66BFCCCFELtBDjxBCCCFyQcl9es4888zgmKtgr1ixwssc9giEoaUc5g0AG2+8sZfZj8f66nDILJeasPZJHoNtzex/BACvvvqqlzl1vvX14BDc22+/PWjjMhx5xPoNpIWsjxw5Mjhm3x2+vlySAgjnOS1lAbB2qHsVp5xySur5HXbYYUHbI4884uVysVfXFuwPZ79b7LumzedOO+0UHHO5kBkzZniZ0wwAoR8Hz9nPfvazoB/7zn3ve9/z8i9/+cugH/vqcPoMS5oPGbB2GZuGBM8rEN4jrQ/PzJkzvcz3Oy7bAgBPPPGEl3n+7HXq0qVL0c+yJWL4+N133/XyhAkTgn7sP2TP/dhjj/UypziZNWsWGiu14T/D5X6uuOIKL7PfHQC88MILXj700EO9zD6Q63Meadxyyy1e7tWrV9A2cODATGNI0yOEEEKIXKCHHiGEEELkgpKbtywc9j1s2LDUfqyGttl5WZWdFiJrYbWuVfGyyaV58+ZetiYQ7sfq+T/84Q+ZzkHE1Z2cisCGoG611VZe5izcbOoEgM6dO3uZVbU2y6vNol0Fr08AeOmll7zMWcIbAzFTR9r1qS2uu+46L++7775eZpMhEGZGZvNIu3btgn6s9t5rr73W+/x4nTYEc5a9D/Ixy2nmRwB46qmnguMbb7zRy+eee66XbdbsNJPRkiVLgmO+pmyWbtq0adCP1yWnlrDrldeGTTXB65dNZJyxHVjbVFeOpP3GVcfszGZ/Nic/+uijQT82BTLTpk0LjjnUn6+p/a2uSVoWTlcDAD/96U+Lnsfhhx8e9JN5SwghhBCC0EOPEEIIIXJByc1bVjWXZmayKmSO9mA1JhCq8XgMG2XBHv0xdT2/j8fmSC4gVJPGsBFKTEy9nAdi88ARW3Y9cNQbq2rtnHOBSTaD2aKRnN2XP+udd94J+l166aWp53v66ad7+a677krtV1dU7bWYmpv3Y2wuFi9e7OV///vfQduTTz7p5eeff77a5wkAAwYM8DJH2vDYQLiH08weQBhdFDNv8d7kgsdAuHY4c++iRYuCflURSjZysD6x91meW75unAkbALbbbjsvX3755UEbR9Bydno2NQPAySefXO3z5cjdp59+OmjjzM1sorZmMM7+azP6s2mN58neV+rCvFU1N7GCrrE9W5MIKHsfu+SSS7zM64FNxkAYpcUuHJtuumnQj81iXBXBZuHmagUcgWvngSO07bnvvvvuXma3h+nTp6MmSNMjhBBCiFyghx4hhBBC5AI99AghhBAiF5Tcp8faI9mnJeZTYP14GM60yxXNbVZOtt+n+QHZ8+DxrA05luE3bbzGlqm3JvA8WJ8m9rvhrNw22yb7InDmbTsn1vZcRevWrYPjOXPmFD0/TlkAhL46Npx99OjRXubK3occckjRc6gr7PrOugYvuOACL3P2cXtNOESVw0mBtStmZ+Fvf/ubl++///6gja8x2/NttvS7777by+x7xxnggdCHY+XKlUEb+4fxvcT6H2yzzTYAQh+guiIt6669l/L88XxxaD8A7LPPPl5+/PHHgza+3uy3w/5TlrRraGE/kOOOOy5o42P22/jrX/8a9HvmmWe8zH5+QOiHxfcLm/G7Lqiap6z70O5fXmcVFRVetr4vy5Yt8/Lbb78dtHEqD85Yzv5TQHgv5L1sr9t+++1X9Nzt/Zj3G+9LWz2BfTY50zYQ+mQdfPDBXrYpEdjvLIY0PUIIIYTIBXroEUIIIUQuqPOMzAyr0qwqlNWVto3Vzaz6s2GsbKri91j1IY/PoapWVbftttsW+RZrUxuF3xoTsTB9zmbN6k9WfwOhejbN1AWsbZLMck68HqyZgNcUm+KAMBs0F120ZpMTTzwx0zmtL9VVo1t69Ojh5XvvvdfLVeacKrbeemsv2xDViy++2Ms2HDYN3pusegdCFTtffw5jBYDevXt7mdNd2EKJ/fv3Lzqehe8JNjN727ZtAWRfazWhak1mzbp72223BcdsmuJ5HTRoUNCPTUS27cUXX/QymxVi90E+v1iIdtZ7JJu8beoA/v2w5k7eg3wvsW4TNpVFKbG/O2lh2mymAsLUCmzqsaZ8Ni3aa//d737Xy2PGjPEyh5EDYabzqnUOrH1P46oIjDUx8X7mNAV27/DvuE0FwSkSuBgtm3CB0PQXQ5oeIYQQQuQCPfQIIYQQIhfUq3krxnvvvedlGz3BZivGqtbSCgVaE0aaKS0W5cVe6VbVl7UIamMldt0sHB3Famib/ZojiNh8MXv27KAfR6qwacNG2mQtIsnmTqtO5siXmkQt1SZJknhTn1UPs0o4Zko466yzvMxRVNbscdlll3l5l112Cdo4uy6PZ+dz/PjxXuasu3Zv9+zZ08v9+vXzslWPs6mKo+wmTpwY9OPzYHU7EJpQeQ3brL1Vpp5Smq6rW/DV3oPY3MdmD2uq5MLO9nv26dOnaBtH2liyZpyPXTteQ0OGDPHyQQcdFPTjQqc2OpOz6fP6t+dXavPWsmXLcM899wAITb8AcMYZZ3iZI5ZstCSboPh7WlMdZ6W2EVBsMuPIWLse+H7HRWbtb1pa5ntbjcAWeK1i6dKlwTGbpuy9mT9r8uTJXrZFqbMiTY8QQgghcoEeeoQQQgiRC/TQI4QQQohcUK8+PTG77ssvv+xla+PjMGW2vVtbM9snuc3adbkf+wrYCt7cj22S1p7O59SYq6pnzQ7LjBgxIjhmXwH26eFrDYQhkxyeakOceW0sWLDAy9bWzJ/F5xvLItutW7fg+B//+Edq37rm888/91mmbdVqnqdYpXL2EWDfGhuWzv1sWoezzz7by+xHYDPm8vu233774Hsw7McxYcIEL3fs2BFpcIjvHnvsEbRNnTrVy/vuu2/QxmuR9z5XIgfWrJdySkdhw3fTfClsFltOu2AzjnOIOGcwj8HX7f333w/aeF7YZ9P6YvLnPvzww162KRA4S7D18eLfDF5r1t8ttt9rg+bNm2Pw4MFFP4vnLGvFcPYrtPfIefPmedl+Fu8rfp8dg++TPJc8d/Z9fP+0v9W879lXyc4X31Ni+4p/x+1anjRpUur7GGl6hBBCCJEL9NAjhBBCiFxQr+atmBmEQ5Fj5ig2Z1jzVlooeszkxGp9Dnu043FWYA7tBMpL7V1KavI9OdwZCMPKOXzShjjzvHCoImeNBcJssby+Ro0aFfTj9cBmHmuGSTuHGLFMtKVigw028CpiNhcB4TXhLLA2NJbVxRxOa8NaWY1+/vnnB22HH364l3lfxAoMcnFEa2KZNm2al9kkac1gPD7PoS28yGOMHTs2aGNTKZsBbSbgqky1pTKNrFq1yq/rYcOGBW3t27f3Mn8Xe69ikxGvW2vS5HDgmTNnBm28jjmc/6mnngr6pRUZtWarNDOyNXXw+uX32HvCG2+84WW7b/mYTS42VPp//ud/UEqcc/7zjz/++KDNHq8v/J3tbyvvF74e9l6Vdo+zv5k8Bsv1+dtns3KnIU2PEEIIIXKBHnqEEEIIkQvq3LyVVtzRRkpxdklrtooVtWPSTF9WLc1jpBWiBEI1Hpu3LNXNptoYiBXt5KibKVOmBG2cOZT72YKjXHSOC15alSZn7OSIgIEDBwb9OCMwrxMbjcRrjTO7xqgPFe8GG2zgTRccGQOEUVQcBdeyZcugH0f88LxYswJndOVCiUBo0mLTFEfaAGEUCmfFtaYkVrdzpJE1b/Exr0WbmZajU+x8Ll682Mux4o1VpqRS7fMmTZr4TMl2LvmYC6FyoUggNIPxNbSFIzkTrr2mbPria8BFgoHQRM3RUfaezvB49vryuuE5svPF+yxmluZim/Z6nnrqqanvqw023HBDb0a2156PeV1aUxL/XsX6MfYexHPL+8iOYX/zqrBzlPa7a1/n8Vi2a43XSux78RjWZM4FUmPk79dZCCGEELlEDz1CCCGEyAV66BFCCCFELqhzn540W6C1d3JlWRtmyKG27NNhs0HaLLxVWFsznxO/x9pF+X22ujfDtv76CF+uTdJsskD4PWP+Db/+9a+9zPZkILwe3GZt7xymzv1stly233MINmdnBsLq0hzGbe3J7ONj/VLKCfYdsHPB+yWWwZz9bHj/2Qr1HCps1wTvVQ51t3suzQfH+nJx+DL7JrHPChDOIX8v6zvAfiHWp4l9Xzj7L48NrPEVK1W29Q033NBfh+OOOy7Te+y9jr8Lh47bueRrb+/BvPbZZ8bew7haPY9nK5jzvuX1YLMk83jcL1Z9284Fr3kO57fZ8+0aKCU2RYQ9FnWDND1CCCGEyAV66BFCCCFELigb85YNi2VVayz8jsPWbD9WyaaFvtr3cbZnVvcDYehgmuoXCNWwVv1fjgVI7Zzw9+HvmTVE97rrrguOOTx8r732CtrGjRvnZb42NjyV1dx8fraooTWFVnHHHXeknhOH0VuVM3+WDX8uJ5xzfq7steP0CjyftiglFxXkcP9YGKqFrxebozg0Ggj3MJuo7dg8XiwsmeeN16ldH3yfsVmM2SzG9wQO0bfjlwv2vsJZjlnOGtYrRGOl/HavEEIIIUQJ0EOPEEIIIXJBvRYcZWyERNbMsTEzE5tEYuYtHoMjB2y0AL+Px2OzAAC0bt3ay7GM0eWCNQvarMRV2AgRzsb7l7/8xcs33nhj0G/XXXf1Mme9BYDddtvNy5xN2WZaTjM9xEwNjz76qJcPPfTQoO2JJ54o+h47Hs9fLCMz96vvCL0jjzwyOGaTERfgtHPBpsG5c+d62RaE5LVvs5vzNeL9xxm1gTASjs3I1kzDUVr8nqwmJrtm+Tva/c0mt5ipVQjRcJGmRwghhBC5QA89QgghhMgFeugRQgghRC4oG58eDm8FQvu69RtgHxrOHGvt9+xbwX4NNjssh+eyT48NWecx+LOsbwT79DREHnroIS//8Ic/9LK9buzbwVgfiBkzZnh55513DtqmTp3q5e7du3t5+vTpQb+0zKz22g8fPtzL1o+HScvWbeE1ZDPMMrw2yi0tAfu/cAZrm826MRLzERJC5A9peoQQQgiRC/TQI4QQQohcUDYZmefNmxcc23BShgvNdevWzcu2uCDDJjFbOJJDtHlszs4MhGHTbM6w4dVMQwhZt1lrL7zwQi+zaZHNgDGs6Yjn5eWXXw7adtllFy9zmLT9LA415gKKRxxxRNDv8MMPz3SOaWH51hzCpiFbDJNpCPMshBB5R5oeIYQQQuQCPfQIIYQQIhfooUcIIYQQuaBsQtatLwWXfIj51rDvD1dcB0LfDw6Jtynx7fuqsL4pfI5c8iJWdiBWkbpc4HINQHittthiCy/z9QTC68Ph6/Y7s1+M9X2ZMGGClzt16uTlvn37Bv24RMX8+fO9PGzYMKTBvkS8ZoC1SytUkbYWAKBdu3apbUIIIcofaXqEEEIIkQv00COEEEKIXFA25i0bQsymJGtyaNu2rZfZdGJNGPw+Hs9Wbf/000+9zGYPa4pJM2PZqu1M1mrQ9cmpp54aHP/nP//x8syZM73M4fxAesbrWNh3kyZNgjZ+35w5c7zMIepAmCl71KhRRb7F2thM3kxaSgT7Hs4EHQvZZ1Nf7HOFEELUH+X/iyyEEEIIUQvooUcIIYQQuaBs9PCzZs0KjtmcYU0Ry5cvLypbM9iHH37o5ZUrV3p59uzZQb8lS5Z4ecqUKV7eddddg35s3mHTV1p234aCNTk999xzXl64cKGX77rrrqDf448/7mWOropFQGXFFjN94oknvDxo0KD1Hn+bbbYp+jqvOyDM+N2jR4/U8cqtyKgQQoi1kaZHCCGEELlADz1CCCGEyAV66BFCCCFELqhzn560EG6bgbeiosLLHKIOhKHpbdq08bL1q1i0aFFReeeddw76cebeBQsWeNmGqG+yySZeZt8fzlpsaQgh6zE4S/Lvfve7oM0eV2H9s7h6OvtgAWH6APafSfO5qS24kny/fv28bNcan1+rVq1Sx1OYuhBClD8N+xdZCCGEECIjeugRQgghRC5wNutwtLNzHwBYsM6OojbZMkmSNuvuVj00l/WG5rPxoLlsXNT6fGou643UuazWQ48QQgghRENF5i0hhBBC5AI99AghhBAiF9T7Q49zrpVzbkrh32Ln3Ht0HK3v4Jwb5Jx7LKXtDufcd1PaLnDObWJe+41z7iTn3OFp7xPrxjl3hHMucc5tn7H/fOdc6yKvryrWPzJOtfpHxjndOdehNsbKC8653zrnZjjnphb27YBaGHO0c67v+vYR1UNz2fApxRzS2Km/uQ2Fek8ukiTJhwB6AYBz7vcAViVJ8qdaGPfMYq875zYEcAGAewB8Sk0HADgWwHUAHgPwxvqeQ045AcCLAI4H8Pv6PZUacTqA6QAWraOfAOCc2xXAIQD6JEnyeeEBtmEXo8spmsuGTznPoXPuW0mSfFXf51Hvmp6sOOf2Ig3Qa865TQtNzZxzDznn3nTO3esKGQX5Lwfn3Crn3BXOuVcA/BZABwCjnHOjCu3NUbkwtgHwAwDXFT6nu3Oul3NufOGpebhzbnMa/ybn3Djn3HTnXP+6vSLlh3OuGYDdAfwPKh96ql4fVLhea80T9WninHvKOXdWkXEvdM5NKMzB5ZHPv945N9k595xzrk3htbT5W+t159zRAPoCuLcw/03SPkt42gOoSJLkcwBIkqQiSZJFzrnLCnM23Tn3d7Mvr3HOveqcm+Wc26PwehPn3AOF+RgKwF9759xtzrmJhb9eU+dfrDeay4ZP2hzOd85dXrg/TnMFTbxzrqlz7s7C/L7mnDus8HpX59zYQv/Jzrnd7Ac55/oV3tMtMs7pzrkHnXMjAIysu8sQIUmSsvmHSs3Ar1LaRgDYvSA3Q6WWahCAjwB0QuUD3MsABhb6jAbQtyAnAI6lseYDaE3HRwK4oiDfBeBoapsKYK+CfAWAm2j8IQV5TwDT6/v61fc/ACcD+EdBHofKvzawjnmaD6ArgGcBnEpjrSr8fwCAvwNwhfc+BmDPIp+dADipIF8G4JZ1zF9sXvvW97VsKP8Ke3EKgFkAbqVr2pL6/BvAoXR9ry/IBwN4tiD/AsCdBbkngK9o/7Ys/L9h4f09NVeaS/2r1hzOB/CzgvxTAHcU5CsBnFyQNyu8rymATQBsXHh9GwATC/Kgwj14NwCTAHRZxzinA1jIa6i+/zUYTQ+AlwDc4Jw7D8BmyRo12atJkixMkuQbVE521yLv/RrAw5GxDwLwpH3ROdei8FkvFF66G5UPOFXcDwBJkowB0Nw5t1k1vk9j5AQADxTkBwrHVcTm6REA/0yS5F9Fxjyg8O81AJMBbI/KTWj5BsDQgnwPgIFp85dhXkVGkiRZBWBnAGcD+ADAUOfc6QD2ds694pybBmAfAD3obcMK/0/CmnWwJyrnDUmSTEXlQ2kVxzrnJqNyDfQAIJ+7EqC5bPhE5hAoPlcHALjYOTcFlQ+eGwPoAmAjAEMKc/4gwnnaAZV/iB6aJMk76xgHAJ5JkmRZrX3J9aTefXrScM6dA6DK1HFwkiRXO+ceR+VfFOOdc/sV2j6nt32N4t/psyRJvo58XH8AP6nBadokR7lNeuSca4XKG+KOzrkElX/JJc65iwpdYvP0EoDBzrn7/r+9Mw+XqrrS/rsc4hAVRVARZHRgEjCgBjXOIcZE/Ry6jUkbjd0ZzBejpttEkzbdrSZqmy/RpGObxHRsTIgxse2AIw7ggKCiMomioqCIiiASMZKg7O+Pqrt59+KeTd3LHarueX/Pw8OqOrtOnTr77H3OXe9aa4fqnwq8awCXhxB+1sJDKm1fdDTVsTUVwNTqJPllVP7CHxNCeMUqsXpb00eargV/HWzQZ2Y2AMA/Adg/hLDSzG5w+xJtiPqy8WmmD8+obmqurwzAySGEBbyPaj+/AWAkKh72NbT5NVT6bT+sj30s2s+BAN7d5B/VhtStpyeE8NMQwqjqv6VmNiiEMDeEcCWAmaj8xd9a3gGwPQCY2TAAz9JDUdwWQlgFYGWTVg3gdAAP0H5Ore7jEACrqu3LyikAxocQ+oUQ+ocQ9gDwEoBDavjsdwGsQMUd67kbwFlWiReCmfU2s12aabdZ9RgA4LMAHi7qv430a+x/sXHMbB8zY8/bKABNE9/yar+dsuEnN+BBAJ/R1VpAAAAgAElEQVSr7nM4KjdaANgBlUlzlZntCuCTbXLgYgPUl41PQR/mKkLfDeAcitPar/p+NwCvVT3zp6PyR2wTbwP4FIDvm9nhG9lP3VG3np5mOM/MjkDlKXU+KnLU2Fbu6+cA7jSz1wDcDuAu2nYTKm69r6MywM8AcJ1VUtxfBPAFarvSzB5BZTCf1cpj6SqcBuAK994tqDyA/G7D5htwHoD/MrN/DyE0eYcQQphsZkMATK+Op9WoxA4tc59/F8AwM3sClfihU6vvF/Vf0fs3VN9/D8DYEMJ7NRx7mdkOwE+q0u77AF5AxbX+NoC5qMQSPF7Dfv4TwK/MbA4q8udjABBCmG1mTwF4GpV+mtbWP0BE1JeNT1Effrqg/aUArgYwp/rAsqja9loAt5jZ3wCYAuetCSG8YWbHoXIfPSuzn7qj9MtQmNk9qATQvtbCz01FJeh6ZrscmBBCCCHalEby9LQLIYSPd/YxCCGEEKL9Kb2nRwghhBDloG4DmYUQQggh2hI99AghhBCiFOihRwghhBClQA89QgghhCgFLcre6tGjR+jfv387HYpojkWLFmH58uW28ZYto7P68t130+KcK1asiPYWW6y/HDfffPOkndH6pO+/X7xQ74c+tH5B4T//+c+Fn1m7dm2099lnn40ddpvxxBNPLA8h9Gzr/dbj2ORznuvPRqUrjE1OZPnrX/+abHvvvfUlqj784Q9He8stt9zk7+Xv4u8BgG7dum3y/ltDe4zNehmX69atizafb3/ut91222jzGOX5EkivgW22qb91mXN92aKHnv79+2PmTJWl6UjGjBnTLvvtrL58/PG0ttn48euX29p5552jvf32aVFkfiBavnx5tP3Ns2/fvtGeNWtWtJctS2sZvvnmm9GeMmVKTcfeFphZrjpqq6nHsckPtP5Gxv3ZnvjsVH692Wab5uju7LHJNzL/W3LbGH74ePnll5NtTz/9dLQPPPDAaO+2224bPbaNsXjx+mEwf/78ZNsxxxwT7Vofjvn3Aq3r2/YYm+05Llvym1evXh1t7le2AWDEiBHR3mqrraL92mtpGbtdd9012iNHjiz8Xh5vHfmHTq4vS1+nR3QsU6dOTV7Pmzcv2jwoXnrppaQdD1p+6Nlpp52Sdnxz3XHH9eu/9ujRI2m3aNGi2g9aJPBEdvfddyfbbr755mjzw+Qbb7yRtFuzZv1SPl/5ylei/dRTTyXteGJ/5plnoj14cLoKzfXXXx9tnrj9RMuv/QNRo3mf+HhrvQF++ctfTl7/5S/rl8TjmxyQ9tk111zT7PcCqRdgv/3Wrz7gvQj8oMsPOv4PnLvuWl8g/+2334728ccfn7Q7+eSTo93ah75GJve7FixIlsDCO++8E+3nnnsu2nPmzEna8fzJcyv3A5COXx5Ho0aNStrV45jqmleDEEIIIYRDDz1CCCGEKAV66BFCCCFEKVBMj+hQfPbWgAEDov3WW29Fe4899kjasUbP2VYck+DbcUxP9+7dk3b8OY7vqYdMi3qAA03/9m//NtnGfbhq1apkG8cZ8Dnn7B+/f47z8rFcDAcOc4wCAHzmM5+JNscbfOlLX0raXXjhhdH28QadFXTZWmoNyr7ooouivXLlymTb7rvvHm2fvcVjkPvZB7XyuT/77LOjPXbs2KQdB7/y9/p4O44R4mwijhcD0sDr888/P9lWxuWVFi5cGO0lS5Yk2/r16xdt7j8/f3If8Vzosy856YTjfXzQdnsF+28K8vQIIYQQohTooUcIIYQQpUDyluhQOF0SSOvlcFq6l8H49S677BLtXNFBlkC8u5s/9+CDD0Zb8laFM888M9peEuFUVi9bsczCEpEvLcCyJpcgOOqoo5J2O+ywQ7T/9Kc/RXu77bZL2hVJU3fccUfSbuLEidF+5JFHkm2NIGkxubTsF198MdpcFsLLxixv+N/P++zdu3eznwFSmen3v/99tFmaAlIZi/v1gw8+KPxetlkSA4C5c+cW7oPlGN7mZZquBMtMLFMBaTmCPn36RPvGG29M2t16663RPvbYY6N99NFHJ+2GDBnS7Hf5UiBctqBeihjK0yOEEEKIUqCHHiGEEEKUAslbokNhKQNIJahcVhBnArG72stWvA9213uXPMtbXr4pK7/4xS+izdV4fXYNn/9c1hD3jV+7h9dFY7e3lzW533IyBb/eeuuto92zZ7r8Dktkt9xyS7KNK/w2ArmlPO67775ocx/xeQfSc5Vb047Haa9evZJtLFFPmjQp2r46L8vXLHv4a4jXdWIJz491vqYeeuihZNvhhx9e+LlGhs8HS5hAen55CR4glTVZqnzhhReSdrx2IWfzLV26NGnH0jDLm5xBBqRS2mmnndbs+x2NPD1CCCGEKAV66BFCCCFEKdBDjxBCCCFKQWliejiV8rrrrku2DRs2LNqcMnvCCSe0/4GVDB+rw/EBrO3zKsxAGnfDcQieIv3ep89yO/9dZeXaa6+NNp8fnw7McPyF/xyTq37M+DgV/m6ON/DtOCWXY1P86uMc++PTdRstpicHX9N8rn3MFJ9Tf64YPm++cjOfey4lkGvH8Tg+pofHN88XXGkbSK8pTssH0pieXOxTo8FxPBxLA6Rz3J577pls49XUDzjggGjvtttuSTtOOec4Kf4MADz22GPR5nihI488MmnH1820adOivffeeyft9ttvP3QU8vQIIYQQohTooUcIIYQQpaDr+P02wowZM6LtFyt8/PHHo/2Tn/wk2ueee27S7uqrr27x93p38mWXXRZtTgv+2c9+lrTzskEjw2nHnDIMpNIiu9q9HMLVRl999dVoc5omkFZ6ZXevT7vmKqJ+AUWRSh1epuD+zMmGuXR27t+iKs5AKk3wNp9ezcfL8oivAsvtfPVYTsv11X8bDU4d5nPoSwdw6riXjXk8ch/lqpvzd/l2LHVwOy8/8fXF38vH6vfPafNdGZ4HuTK93+bH0bhx46LNcySXGPDtWFr2shX3Gfc/LxoNpBXb+drzc+5ee+0VbV9tva2Rp0cIIYQQpUAPPUIIIYQoBQ0vb9W6mBxHjnfr1i3ZxnIXR/1fc801SbvTTz892qNHjy78LnYz8v4AYMWKFdHm6qhnnHFG0u6www4r3H+jwS7P7bffPtnGFXPZRe0lFT5X7Lr1Lu+DDz442uwa99cGu/K7UsXWlnDWWWclr/lc8vl+5ZVXknbsHvfZH5yhw32YW8yy1kUgixaR9LAs8/rrryfbuCK4vxYfeOCBaHP12EbAy1YsEbCkzOcGSKVivxgpjxGWBXOVm/24ZVi2qrXPOWPLSyd8vL46cVeCxyWfXy8LspTk50WeW/mc9uvXL2nHfcsZW1zFGQCefvrpaBdV0Pavc1mVS5YsifbgwYPRnsjTI4QQQohSoIceIYQQQpQCPfQIIYQQohQ0fEyPjxVgWAN+6aWXou01Q9aaOV7BV7UcM2ZMtE855ZRo9+3bN2n3wx/+MNoDBgxItnEMBGvtO++8c8GvaHy4mrKPKeDYDo5L8O04hoOrzfrUYq5S2r9//2j71GXu565UHqAlnHPOOcnryZMnR5vPv48P4H7yJRk4zoDjNnLjlLflKjdzP3H8ApDGn3Aava/Uy7/Ff9eDDz4Y7UaL6fEpwByTxWPMl3jgOXKfffZJtvGYy1Xo5v1zrEatVbj9+OOx+uSTT0bb9zlfhxxH2dXgOLSi0gxAGqvTvXv3ZBvf43gM+PN2/fXXN7sPHxvH8FzhY8t4PuBr1M/vXL5FMT1CCCGEEG2AHnqEEEIIUQoaXt7KVX2dMGFCtHfcccdo+3Q5dsFxSrmvNsvu3zvvvDPa3sU/ZMiQaHMKL5AuoMcuaE7ZA4Dhw4ejq8BuV++iZtg16t3wXFGZ3ebcr0Dq8uWKu14+5D7Ppdl2Zfwif3wN8uKbPlV44MCB0faLHvIY4bHpXfFFac/shgfSMcif8dcRS8Xslu/Tp0/Sjredf/75ybb999+/2WNqBFgGAoqvaZ5zgOJqykDxoqB+zs1Jl0XtcinrRZWbvRTDoQJ+fPPYZ5m7EeH5k22/sgDPhb6fuc/4nuTvcX/84x+jzeVW/Dnk+1guFZ2lNJa3Ro0albTLyWdtjTw9QgghhCgFeugRQgghRCnQQ48QQgghSkHDx/Tk+N73vhdtXnrCr/RdtDIw66d+G5dA95o2l7f36b6sV7NmzqvAA8AxxxyDrgKfH586zrAe7JcK4TR1Zqeddkpec/l9XrnXx55w3/rlCARwyy23FG777Gc/G22/ujXH5HAcj48DKVo+xrfjMZeLP+HrimOT7rrrroJf0bXglF8Px3D4+EMu3ZBLN+ax6VPPi9LUc3E7nKbu98fHwcful5rg+DG/j1mzZkW70WN6OH6G5zcf08PbfEq4j5Vrwt+fjj766GjzPc6347HNc2nuezl+yLfjffi+rDVmrFbk6RFCCCFEKdBDjxBCCCFKQUPKW+z+YtcXV10G0jQ4Tm/0shW7cXNuNm7H7nmfHuqrYRbtg13506dPL/xMo8PnMVdigLd5d6xPYW/CV82ePXt2tFne8qmZ7DKudcVnUaFoHACpzJQrVVBUndf3BUsnOYmFjyO3CnjRvoF8Zeh6Z+HChclrlohYivDlB/bee+9o+7FZdB5z540/U9TH/vj8NcQyDW/z7fh7/TEtWLCg8LvrHZ9uzuEYLAv5+x2PMV/Ko+ja9vculvqLxh5QPN78NcSyGFeW9u1YduWyMUBarqQtkKdHCCGEEKVADz1CCCGEKAUNIW/5yHGO6GdX3SWXXJK069mzZ7Q5S8G76nJuc4Zdeuye9dk/vM1nRPBvYTfu1KlTC7+30eE+8lk3LDuxNOKzgoqyvtg9DwDTpk2LNrv1Wd4E0uqg3m0u8vjsxyKKMrSA4sVl/XjJZfkwvP9c1W8mJ7U2GkuXLk1es7SYq9TLc6mXs4okvlrHS63n11etZ8mFszP9tcHztpe//QKsjYQ/73xtswzkx6E/j0XUKkflMm35fPO49PP7c889F23OqvR9yWPWV2eWvCWEEEII0Qr00COEEEKIUqCHHiGEEEKUgrqN6WGdMKctTpo0Kdo33HBDso3TmVn/9LpjUQp8rh3Hi3gtlXXz3ArerFe/8MILyba77757g+PuCni9mvVlPqc+vsCnYDYxdOjQwu/i1EcfD8LxXo2WntzZcNqzH5tF8QI+jq7WdGh+zbENPq6EY39qjW3oSvhUdB8z0UQups7D557Pdy62irf5uY/7j8e6L0/B4zEXn8W/0Vcn9jFOjYTvO+6jomrVQLrSvE/7Lior4Mcbn28e274vebzlSkRwDBLPub7iftFK8u2BPD1CCCGEKAV66BFCCCFEKWgzeYvdmkW2h93fXmLISQ6XX355tC+99NJoDx48OGnHbjd2z+ZSJHPHW7TgoXcRshvXp+oWSWns7gXWVxb2KaaNSM7lXbRYnU+lLFoUdP/9909ec19wf/l+KFoIT2wcrqzKpSCANOWVXeVejipapNJTJH/6ccHHwaUgyoIv68FjrqgqLpD2Ua2VrH1/8XdxP/s5jeF2fqzzHFHrIpV+XmnkMhT+2ubfwufeS5o8p+X6KHfv4te8fy8z8j2Uj9efd/4uTkX3C+SyNCd5SwghhBCiDdBDjxBCCCFKQZvJW229WN/EiROj/c1vfjPZxovJjRw5Mtq56pLs8vZuXG7H7ric5JbLJMlJJ0ULlfosmCbXYiO7aZvIZX5wNsLKlSsL2xVlaRVldQHp9ZBz3St7q0KR9OphF7iXMHghV+4b70YvkpFz7vGcTMqvc7JKrb+xEfBZTwxLBCxpjRo1KmnHfeQlh6LK9zlJhLN6ijLIgHS+82OTf9euu+4abS+x8O/KLQ7Nx8HHV694CZKvbR4fOVk+VwGd50UvGTK5cc5Zxbw/Py5ZtuL7rL+GeP+vvPJK4TG1BfL0CCGEEKIU6KFHCCGEEKVADz1CCCGEKAXtXpHZV4a89957oz1r1qxo33bbbUm7efPmRduvpM1pyqxV+rRN1itzqehMUVq6h/Vlr62znur3wcfE3+X176Z2jR53AOT7iFfQ5ZWR/TndY489mt23T2UvqhSaKyuQ07XFhhTFGABpLAn3RS6lmvfhxwGPH+4z3598vXSl1dNzcAych89pUfwFkI+74ba5c1rr3FqUKu3jQHg8ckVfH8PCK3j7WCXe57Jly6Ldu3fvmo61M/F9wr+Ff7MfA7vttlu0+f4JpDGtuZTwon72cyRXwOaVBWbOnJm048rLHJ/l48f4GvIxTW1NOWYHIYQQQpQePfQIIYQQohS0Wt6aOnVq8vqSSy6JNqecsWsRAHbfffdor169Oto+HfFjH/tYtL3Ew+4+3pZzwfFnfDuu5squRe8+5DTLXEVZTgP17v+iSqR8LgBg7NixAIDf/va36Eq8+eabyesimdC7vHnx2BzsxuX9+ZIA7OItYwXf5qg1nTu3OCCPLZa3/PXN+8+VZSiSm/338jZfqbboexudt99+O9r+fPD8xBVz+/Xrl7TjMeKleN5HTsIqqhjs8WnURZ/hsc9p88OHD0/a8X3Gz+l8TCyRNQI+rb6ozAmng/ttvqpz0Rznzw2fbx6zfuFrPt98v3vppZeSdlxq5IADDoj2XXfdlbTbd999o+2vtWeffTbaftWF1iBPjxBCCCFKgR56hBBCCFEKWiRvrV27NkZdn3322ck2dndxRg7bQOpC5chu757MLXbGsAs2l6GTg2Um/i7vdmUXIctgnHXkj8Mvbspux5z8cuihhwIoXmizkeB+8Fk8S5YsiXYum81n8BXBLl92//vz2NYVxMsESyQsIQNpZVU+r74/eVtRJheQzhe5CsR87dS6cGajk5Psi+aZT3ziE0m7OXPmRNvLKjyP5aqb8/75M74v+XO8Py/N8XHwb9xrr72SdjfffHO0vXxalAHWCPg5kudPPteHHHJI0q7oPgYUS8he0uRxmRtHvH+eZ30fMfws4KU57i8/H7d1Npc8PUIIIYQoBXroEUIIIUQp0EOPEEIIIUpBi2J63nzzTVx77bUANkwp5vicWis+cqq4111Zx/TbWPNjTdJXk+Q4Gd5fLr2Tq37638gpkq+//nq0uRImAPTq1SvaXrvk2BI+JtZFgfWaaVevLlukt/u0xe7du9e0vz59+kT7mWeeibZfJZj16kZYebkjKIrh8H3B8SI+JoDPZS4VvSgF2o85HiPcZz5eLxdzUusxNFpsV65iPP82budjDDnWyo+xWmN6OL6D2/kYLN+3Tfg5kvfBc66PYeFUaR8zxvGXPt263vHxWfxbeB7LxWDl4Psf37f9d3NsEd+rAeDVV19t9nsHDhxY2K5nz57R9jFYfG346vu5mN7W0LXvqEIIIYQQVfTQI4QQQohS0CJ5y8yiq9TLEiwLsdvNS0nsumSJKOdq9tIEu2h5f969V5QW6SUjdsOyO867RQ8//PBoX3rppdG+++67k3b8W3LVNdnF196LrNULvo9YKuFryp83XtQuxy677BJtruTp5UN+3QiLEHYmXqbi69uPpVplptxisEzRNi/t8LXTFco81EJOZuQ5k+e3nLzF8zGQjjmWOnzFax5zvM3LNNwvvBD1yy+/nLRj2YrnSC8/8vFyRV8g/f0+Bbze8fdCHissM/kqyzwGvPzL46hoUWb/OrfAL7fj/vKSJlfgZwmLqzMD6bXsy7e09XiWp0cIIYQQpUAPPUIIIYQoBS2St3r16oWLL74YwIYLR95///3RZrejjw5nNxm757x7luWo3EJ4bPt2RdIXu1Z9u2984xvRPu+881ALN954Y/Kas7e8W5Ddy+xaLsps6Grk3K7s4vTZAt5VXgRngvBn/LXB5zuXBSPy2Y5eLinKtvIUVe71Ega34/35721NBd5Gz97ia9hLTqtWrYp2bmFj/s25yshFi14C6b2AJeWPfvSjSbsiGczLp1zlm4/dZ8nya78Q5fPPP194vPWOnyP5/LB85Fc7mDlzZk3757Hjzz2PIx4fPtSD5UN/TTF8j2cZc5999knaPfjgg80eH7BhaMKmIk+PEEIIIUqBHnqEEEIIUQr00COEEEKIUtDqYIYf//jHyWuOT7n66qujPX78+KQdp4SvXLky2r7qIqep+XgOTmnj7/Xpcvxd/Jl//ud/Ttp9+9vfxqbAKxUDqXbp9VmOW+EKlU2r1zfRpEMXVa5tJDhWwKdZ8u/j1NLdd9+9Vd/Vv3//aLOW78seMIrpqVB0rbVkleqiFdN9vExRantulXUmF4vAY6wrw7EUubgKPr+PPvposo3jQpYsWZJs43PK+/d9wn3B+/NjnffBn/EVmefNmxdtTpu/5557knY83/uYJo4L8XNrI+PTuRme43Kp6Nx//v5UFJPnS4jwXM3jzcfwcmwm36s5zR3IV2/3MT6bijw9QgghhCgFeugRQgghRClotV/fp2Kz++uCCy5o1vZwmvuTTz6ZbGMX5+LFi5NtnMLG7j7vBvva174W7QsvvLDwOIrIVXhmrrjiiuQ1V6fOLR7HLr7Ro0c3u+9GS6NtDnZrencqS1Dsrvbuz1rhtFg+d/488vf6YxIpnP4M1J5izraXzooWefVueXbF8/fm3OF+8cmuyrJly6K95557Jtt4juQUcJ/2zdKznz9ZwuD+8n1ZJF/nxjpv8+UpWE5lycannvN3LViwINnG102jz6E8L/bt2zfaPo18/vz50fYVqotkZz/eeBv3uQ8PYMmwaIUEvw/+HbmQgtwqBm2BPD1CCCGEKAV66BFCCCFEKdBDjxBCCCFKQatjeoriW1rCkUce2axdL9T6G88444x2PpLGhmMsimI5gFR35rioXDuv17P2nNOaOY4gl85eJmpNWc+d/6Ixk1tJPafZcxxH7joqiiXqyhTFwwHptb98+fJo+/7imEifYs7jIlc6g+OHBgwYUNiuaHz7/uJSHnw9+ePLxQ/x72+0khQcgwUAr7zySrRHjRoVbR/rumjRomiPHDky2cZjjM+HP/d8HrlsiF+6idtxX/o4I97GMWj+OuRj8ktctXXMpTw9QgghhCgFeugRQgghRCloLL+faHi4wqqHXaG5yqPskvWuT67uyi5TL7uwe1XyVh4vb9WaEs7lGnISFqfN+r7gvs71E/cvu+UbfSX1HFzF3ksiXJmcSw546YCrJHtJmdvy+fXV81lmYpmNU949fLy+HX8X9xdXugdSidPLnTzP5CS3emT48OHJaz5+rnjsJacTTjgh2r4qOY8Dnhf9+GBZkMevL1vBKybw/ODnY57HWWb15QdOOumkaPtrORcS0Rrk6RFCCCFEKdBDjxBCCCFKgeQt0e6wm5wj+IF0gUKu7JqTMnLyVlEFUC9rsESTW6yxTBRJP/78sEucXdYAsHTp0mizK95nifA+WN7yMiTLYnzt+P2xBMDV3DmzCMjLq43GsGHDou2lKV4E+Xvf+160fSYTSyQ8FoFUdnr++eejPXHixKQdS2ncf88991zSjs899/m4ceOSdty33H/++FhymTlzZrKNK7offPDBaCR8hWr/ugm/igGTW6Qzt4Aw9x/LTH6e5X3wvO0pWmTWS5VcUZyls/ZAnh4hhBBClAI99AghhBCiFOihRwghhBClQDE9ot3hFX+PO+64ZBtr+927d4/2EUccUbi/XKVsXkWadWIf28FVXzk2oswUVa495phjktd33313tLkKLJDG+LDW7+OCOF6A01d933LsFccI+dXCOW164MCB0c7F8DR6+jqnNn/rW99Ktj388MPRPv7446PNacit5eKLL97kfbQFHNNz7rnnJtsOOeSQaDdaReYcPF/6uB2Og/RxNkUlQHw6OI833p8/hxynyXOpjxfieCQ+hqI4JWDDeL22WP0h2V+b7k0IIYQQok7RQ48QQgghSoHlFpLboLHZmwAWb7ShaEv6hRB6brxZy1Bfdhrqz66D+rJr0eb9qb7sNAr7skUPPUIIIYQQjYrkLSGEEEKUAj30CCGEEKIU1MVDj5mdaGbBzAbX2H6RmfVo5v0WrSfQ0vaZ/ZxpZrtvvGV5MbOdzWxW9d/rZvYqvd70PFrR5mxKn5nZ4WZ2W8G2681saMG288xsW/feRWb2OTP7P0WfE+2LmX3HzJ42sznV/j8wMw8fb2YXFuzncDM7qP2PWBRhZruZ2U1mttDM5pvZHWa2dwv3saOZfbW9jrE9qYuHHgCnAXgYwGc6+0BayZkA9NCTIYSwIoQwKoQwCsB1AH7U9DqE8FcAsAoddk2aWdcp4NEO1NJnrdzvP4QQ5vv3zWxzAOcB2NZtGgdgMoD/A0APPR2MmY0F8GkAHwkhjABwNIBXitqHECaGEK5oZj9bADgcgB56OgmrFKe6FcDUEMKgEMJQAN8GsGsLd7UjAD30tAYz2w7AwQD+HvTQU/2LYKqZ/cHMnjWz35irJmZm25jZXWb2xWb2e4GZPV79y+TfMt///8zsSTO7z8x6Vt8bZWYzqp+91cx2KnrfzE4BMAbAb6p/ATVfBUo0i5ntaWbzzOw6AE8C6GVmf2dmc6vvf7/abgsze5s+9xkzu57seWY228ymUPsfmtlj1f76h+r7R5vZvWZ2E4CnOvwHd0HM7DDyAD1lZk0rBm7X3PitjusxVXu1mV1iZo8C+A4qfzxMoX7cAcCHAOwF4HgAV1W/Z1BmnE41s6vN7JHqdXFAx56RLkcvAMtDCH8BgBDC8hBC08qy51Tnz7lW9dRbxfP9H1X7huo4nALgdwC+AuD8ah9+rBN+S9k5AsDaEMJ1TW+EEGYBeNjMrqqOl7lmdipQuT9X741NfXxC9WNXABhU7cerOv5nbAIhhE79B+DvAPyyaj+Cyl8TQOUvglUA+qDycDYdwCHVbYsA9AdwL4DP075WV/8fB+DnAKz62dsAHNrMdwcAn6va3wXwH1V7DoDDqvYlAK7eyPtTAYzp7HPZKP8A/CuAf+9OaXsAACAASURBVKraewJYB2D/6us+1f7tAWBLAA+g8lfmFgDepn18BsD1VfsZALtW7R2r/38VwIVVeytUHnD6ovJX6moAfTv7PDTSP+6zZrZNAnBw1d6u2le58RvHS3UM/i3taxGAHvT6JACXVO0bAJxC23Lj8RdV+1AA8zr7/DXyv2qfzgLwHIBr6ZwvAnBO1f4qjcczaS69oTr/br6x60j/OqQvv46Kx9a/fzKAewBsjorX52VUHna3ALBDtU0PAC+gcl/t36jjqtM9PahIWzdV7Zuqr5t4LISwJISwDpVB15+2/RHAr0II45vZ57jqv6dQ8R4MRuUvRc86VP76AIBfAzjEzLqhcuN8oPr+fwM4tOj9mn+lyLEwhPB41T4QwP2h8tfkWgATsPHzPA3A+Ko3p+maHgfgC2Y2C8CjqLhjm66B6SGEl9v0F5SbaQB+aGZfR2WMNNXKz43fJj4AcEtm38cAuNO/WcN4/C0AhBAeBLCDme3Ygt8jiBDCagCjAXwJwJsAfmdmZ1Y3/0/1/yfQfP8CwO9DCB+05zGKTeYQAL8NIXwQQngDlT8290flAef7ZjYHFSdDb7RcCqsrOjWmwcx2BnAkgOFmFlB5ygxm9s1qk79Q8w+QHu80AJ80swmh+hjKuwZweQjhZy08JBUt6hx4wZaiBZHWuW1bk/1FVB6WPg1gtpmNqLb9agjhPt6JmR3tvk+0EDP7v6iccwA4NoRwhZndDuBYADOq5xjIj98m1mzkhngAgLNbcZh+LGtsbwLVPpoKYKqZzQVwRnVTUx8X9S+g8VZPPA3glGbeL5p3PwegJ4DRIYS1ZrYI6dzbcHS2p+cUAONDCP1CCP1DCHsAeAmVp86N8V0AK1Bxt3ruBnBWNV4IZtbbzHZppt1mWH8BfBbAwyGEVQBWkt58OoAHit6v2u8AaIpjEJvGDABHWCVzaAtUZKwHqt6ClWa2l1WCnU+kzwwMIcwAcDGAlaj8NXI3gK9W9wEz20fxVm1DCOGnYX1A81IzGxRCmBtCuBLATFQ8q60ljiUzGwbgWXooits2Mh4BoCkm4RAAq6rtRSuojh32lI9C66sMa67sXO4HsJVRHKyZ7Y/KvHmqmW1uldjWQwE8BqAbgGXVB54jAPSrfqxh+7Gzs1dOQyUgirkFlQeQ323YfAPOA/BfZvbvIYQm7xBCCJPNbAiA6dXYydWoxA4tc59/F8AwM3sClfiDU6vvnwHgOqukzr4I4Asbef+G6vvvARgbQnivhmMXzRBCWGJm30Xlr0oDMCmEcHt187cA3IWK3jwflVgdAPiRmQ2otp8cQphnZs+gEsMzq3oNLANwAkR7cF51QvwAlX65E8DYVu7r5wDuNLPXANyOSn83cROAX1RltFNQPB6BygPRIwB2AHBWK49FVNgOwE+qEuH7qMR1fAkVz2pLmQTgD9WA2HNCCA+13WGKjRFCCGZ2IoCrrVJWYA0qsVnnodLPs1Hxin4zhPC6mf0GwCQzm4mKRP1sdT8rzGyamc0DcGcI4YJO+DmtQstQCCHqEjO7B5VEhdda+LmpqATLzmyXAxNCNCyd7ekRQohmCSF8vLOPQQjRtZCnRwghhBCloLMDmYUQQgghOgQ99AghhBCiFOihRwghhBClQA89QgghhCgFLcre6tGjR+jfv387HUox77zzTvL6L39ZX+i1R48e7fa9b775ZvJ6m23W17bbbrvt2u17mUWLFmH58uVF1TJbTUf25bp166K92Wb18ZzNAfxmbX56C3niiSeWhxB6tvV+O2ts1sratWuT12+/HdeOxQcfrC/I7BMrtt9+ff2zjhpztdIVxqZYT3uMzXrpy7feeivaf/rTn6L9/vvvJ+14/PG43GKL9FGBx+Juu+3WZsfZVuT6skUPPf3798fMmZtW+qI1N5spU6Ykr1988cVo//3f//0mHU+Oa69Niz2PGDEi2occUkvR6E1nzJgx7bLftujLWnnvvfW1GvnBsTPhwe4HdHtiZq2tZJulPfuzJRmeRWP61VdfTV7fdttt0V65cmW0/cPREUccEe3cmCuaV/yxt+UDblcYm2I97TE266UvJ0yYEO377lu/Ms/y5cuTdjz++OHIOxcOPvjgaF9wQf3VJcz1ZX382S2EEEII0c7UTXFC/msPAE4++eTCbVtuuWW058yZE212xwGplMISC7v6PK+//nq0ly1LV63g/W299fo11x577LHC/YnUu/PXv/412cbnu3fv3tHOeRfYc7RmzZrCbStWrIh29+7dk3b9+vWD2HRynhP25vz85z9PtnF/9Oy53gvN4xRIva3PPfdctM86K11ZolYPTmfJmkK0BbWGCuy0007J61Wr1i89161bt2h7aerdd9evDfvhD3842gsXLkzaTZ48OdoXX3xxtP18zNTL2JOnRwghhBClQA89QgghhCgFeugRQgghRCno8JieIi3v/PPPT14/++yz0d5rr72SbZtvvnm0H3/88WjvscceSTtOdf/kJz8Z7enTpyftOOZk9erV0eZ0Wf+9zz//fLRvuOGGpN2ZZ54J0Txf/vKXk9d33XVXtHfcccdo+5ierbbaKtqcYeBjQPj64v737ZYuXdqSwy41fszyufTbbr311miPHz8+2j4ri+MROI5g5513TtoNGjQo2vfff3+0R48enbQbOXJks8dXLyUShGgLctfzCy+8EG0/3/F44XIRu+66a+H+OUaWY1iBNCZy0aJF0b7ooouSdpdffnm0ea7wx9eR41QzghBCCCFKgR56hBBCCFEKOjVlnV1cCxYsSLax+8xXRuYUV3bBcUorkKbcTZ06tbBdUXE673LjdOtevXpFm114gOStHPPmzUteF1Xz5KrbAPDa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\n",
      "text/plain": [
       "<Figure size 720x720 with 25 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat',\n",
    "               'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']\n",
    "\n",
    "plt.figure(figsize=(10,10))\n",
    "for i in range(25):\n",
    "    plt.subplot(5,5,i+1)\n",
    "    plt.xticks([])\n",
    "    plt.yticks([])\n",
    "    plt.grid(False)\n",
    "    plt.imshow(x_train[i], cmap=plt.cm.binary)\n",
    "    plt.xlabel(class_names[y_train[i]])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(6, 4800)\n",
      "(6, 1200)\n",
      "(4, 6000)\n",
      "(10, 6000)\n"
     ]
    }
   ],
   "source": [
    "# The position of [\"top\", \"trouser\", \"pullover\", \"coat\", \"sandal\", \"ankle boot\"] are [0,1,2,4,5,9] \n",
    "# split labels [\"top\", \"trouser\", \"pullover\", \"coat\", \"sandal\", \"ankle boot\"] to train set\n",
    "digit_indices = [np.where(y_train == i)[0] for i in {0,1,2,4,5,9}]\n",
    "digit_indices = np.array(digit_indices)\n",
    "\n",
    "# length of each column\n",
    "n = min([len(digit_indices[d]) for d in range(6)])\n",
    "\n",
    "# The position of [\"dress\", \"sneaker\", \"bag\", \"shirt\"] are [3,6,7,8]\n",
    "# Keep 80% of the images with labels [\"top\", \"trouser\", \"pullover\", \"coat\", \"sandal\", \"ankleboot\"] for training (and 20% for testing)\n",
    "train_set_shape = n * 0.8\n",
    "test_set_shape = n * 0.2\n",
    "y_train_new = digit_indices[:, :int(train_set_shape)]\n",
    "y_test_new = digit_indices[:, int(train_set_shape):]\n",
    "\n",
    "# Keep 100% of the images with labels in [\"dress\", \"sneaker\", \"bag\", \"shirt\"] for testing\n",
    "digit_indices_t = [np.where(y_train == i)[0] for i in {3,6,7,8}]\n",
    "y_test_new_2 = np.array(digit_indices_t)\n",
    "\n",
    "# Keep 100% of the images with labels [\"top\", \"trouser\", \"pullover\", \"coat\",\"sandal\", \"ankle boot\"] union [\"dress\", \"sneaker\", \"bag\", \"shirt\"] for testing\n",
    "digit_indices_3 = [np.where(y_train == i)[0] for i in range(10)]\n",
    "y_test_new_3 = np.array(digit_indices_3)\n",
    "\n",
    "print(y_train_new.shape)\n",
    "print(y_test_new.shape)\n",
    "print(y_test_new_2.shape)\n",
    "print(y_test_new_3.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(57588, 2, 28, 28, 1)\n",
      "(14388, 2, 28, 28, 1)\n",
      "(47992, 2, 28, 28, 1)\n",
      "(119980, 2, 28, 28, 1)\n"
     ]
    }
   ],
   "source": [
    "def create_pairs(x, digit_indices):\n",
    "    '''\n",
    "    Positive and negative pair creation.\n",
    "    Alternates between positive and negative pairs.\n",
    "    '''\n",
    "    pairs = []\n",
    "    # labels are 1 or 0 identify whether the pair is positive or negative\n",
    "    labels = []\n",
    "    \n",
    "    class_num = digit_indices.shape[0]\n",
    "    for d in range(class_num):\n",
    "        for i in range(int(digit_indices.shape[1])-1):\n",
    "            # use images from the same class to create positive pairs\n",
    "            z1, z2 = digit_indices[d][i], digit_indices[d][i + 1]\n",
    "            pairs += [[x[z1], x[z2]]]\n",
    "            # use random number to find images from another class to create negative pairs\n",
    "            inc = random.randrange(1, class_num)\n",
    "            dn = (d + inc) % class_num\n",
    "            z1, z2 = digit_indices[d][i], digit_indices[dn][i]\n",
    "            pairs += [[x[z1], x[z2]]]\n",
    "            # add two labels which the first one is positive class and the second is negative.\n",
    "            labels += [1, 0]\n",
    "    return np.array(pairs), np.array(labels)\n",
    "\n",
    "# For training, images are from 80% of the images with labels [\"top\", \"trouser\", \"pullover\", \"coat\", \"sandal\", \"ankleboot\"]\n",
    "tr_pairs, tr_y = create_pairs(x_train, y_train_new)\n",
    "# Reshape for the convolutional neural network, same for the test sets below.\n",
    "tr_pairs = tr_pairs.reshape(tr_pairs.shape[0], 2, 28, 28, 1)\n",
    "print(tr_pairs.shape)\n",
    "\n",
    "# For testing, images are from the rest 20% of the images with labels [\"top\", \"trouser\", \"pullover\", \"coat\", \"sandal\", \"ankleboot\"]\n",
    "te_pairs_1, te_y_1 = create_pairs(x_train, y_test_new)\n",
    "te_pairs_1 = te_pairs_1.reshape(te_pairs_1.shape[0], 2, 28, 28, 1)\n",
    "print(te_pairs_1.shape)\n",
    "\n",
    "# For testing, images are from 100% of the images with labels in [\"dress\", \"sneaker\", \"bag\", \"shirt\"]\n",
    "te_pairs_2, te_y_2 = create_pairs(x_train, y_test_new_2)\n",
    "te_pairs_2 = te_pairs_2.reshape(te_pairs_2.shape[0], 2, 28, 28, 1)\n",
    "print(te_pairs_2.shape)\n",
    "\n",
    "# For testing, images are from 100% of the images of the whole dataset\n",
    "te_pairs_3, te_y_3 = create_pairs(x_train, y_test_new_3)\n",
    "te_pairs_3 = te_pairs_3.reshape(te_pairs_3.shape[0], 2, 28, 28, 1)\n",
    "print(te_pairs_3.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "input_25 (InputLayer)        (None, 28, 28, 1)         0         \n",
      "_________________________________________________________________\n",
      "conv2d_26 (Conv2D)           (None, 22, 22, 32)        1600      \n",
      "_________________________________________________________________\n",
      "max_pooling2d_16 (MaxPooling (None, 11, 11, 32)        0         \n",
      "_________________________________________________________________\n",
      "conv2d_27 (Conv2D)           (None, 9, 9, 64)          18496     \n",
      "_________________________________________________________________\n",
      "flatten_7 (Flatten)          (None, 5184)              0         \n",
      "_________________________________________________________________\n",
      "dense_7 (Dense)              (None, 128)               663680    \n",
      "=================================================================\n",
      "Total params: 683,776\n",
      "Trainable params: 683,776\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n",
      "None\n"
     ]
    }
   ],
   "source": [
    "def create_base_network(input_shape):\n",
    "    '''\n",
    "    Base network to be shared.\n",
    "    '''\n",
    "    input = Input(shape=input_shape)\n",
    "    x = Conv2D(32, (7, 7), activation='relu', input_shape=input_shape, kernel_regularizer=regularizers.l2(0.01),  \n",
    "              bias_regularizer=regularizers.l1(0.01))(input)\n",
    "    x = MaxPooling2D()(x)\n",
    "    x = Conv2D(64, (3 ,3), activation='relu', kernel_regularizer=regularizers.l2(0.01),  \n",
    "              bias_regularizer=regularizers.l1(0.01))(x)\n",
    "    x = Flatten()(x)\n",
    "    x = Dense(128, activation='relu', kernel_regularizer=regularizers.l2(0.01),  \n",
    "              bias_regularizer=regularizers.l1(0.01))(x)\n",
    "\n",
    "    return Model(input, x)\n",
    "\n",
    "# input shape\n",
    "input_shape = (28,28,1)\n",
    "\n",
    "base_network = create_base_network(input_shape)\n",
    "\n",
    "input_a = Input(shape=input_shape)\n",
    "input_b = Input(shape=input_shape)\n",
    "\n",
    "# because we re-use the same instance `base_network`,\n",
    "# the weights of the network\n",
    "# will be shared across the two branches\n",
    "processed_a = base_network(input_a)\n",
    "processed_b = base_network(input_b)\n",
    "print(base_network.summary())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "epochs = 10\n",
    "# reference from keras example \"https://github.com/keras-team/keras/blob/master/examples/mnist_siamese.py\"\n",
    "def euclidean_distance(vects):\n",
    "    x, y = vects\n",
    "    sum_square = K.sum(K.square(x - y), axis=1, keepdims=True)\n",
    "    return K.sqrt(K.maximum(sum_square, K.epsilon()))\n",
    "\n",
    "def eucl_dist_output_shape(shapes):\n",
    "    shape1, shape2 = shapes\n",
    "    return (shape1[0], 1)\n",
    "\n",
    "def contrastive_loss(y_true, y_pred):\n",
    "    '''\n",
    "    Contrastive loss from Hadsell-et-al.'06\n",
    "    http://yann.lecun.com/exdb/publis/pdf/hadsell-chopra-lecun-06.pdf\n",
    "    '''\n",
    "    margin = 1\n",
    "    square_pred = K.square(y_pred)\n",
    "    margin_square = K.square(K.maximum(margin - y_pred, 0))\n",
    "    return K.mean(y_true * square_pred + (1 - y_true) * margin_square)\n",
    "\n",
    "def compute_accuracy(y_true, y_pred):\n",
    "    '''\n",
    "    Compute classification accuracy with a fixed threshold on distances.\n",
    "    '''\n",
    "    pred = y_pred.ravel() < 0.5\n",
    "    return np.mean(pred == y_true)\n",
    "\n",
    "\n",
    "def accuracy(y_true, y_pred):\n",
    "    '''\n",
    "    Compute classification accuracy with a fixed threshold on distances.\n",
    "    '''\n",
    "    return K.mean(K.equal(y_true, K.cast(y_pred < 0.5, y_true.dtype)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "# add a lambda layer\n",
    "distance = Lambda(euclidean_distance,\n",
    "                  output_shape=eucl_dist_output_shape)([processed_a, processed_b])\n",
    "\n",
    "model = Model([input_a, input_b], distance)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "W1027 01:52:11.690735 20576 deprecation_wrapper.py:119] From C:\\Users\\Computer\\Anaconda3\\lib\\site-packages\\keras\\optimizers.py:790: The name tf.train.Optimizer is deprecated. Please use tf.compat.v1.train.Optimizer instead.\n",
      "\n",
      "W1027 01:52:11.813732 20576 deprecation.py:323] From C:\\Users\\Computer\\Anaconda3\\lib\\site-packages\\tensorflow\\python\\ops\\math_grad.py:1250: add_dispatch_support.<locals>.wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Use tf.where in 2.0, which has the same broadcast rule as np.where\n",
      "W1027 01:52:11.921728 20576 deprecation_wrapper.py:119] From C:\\Users\\Computer\\Anaconda3\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:986: The name tf.assign_add is deprecated. Please use tf.compat.v1.assign_add instead.\n",
      "\n",
      "W1027 01:52:11.926728 20576 deprecation_wrapper.py:119] From C:\\Users\\Computer\\Anaconda3\\lib\\site-packages\\keras\\backend\\tensorflow_backend.py:973: The name tf.assign is deprecated. Please use tf.compat.v1.assign instead.\n",
      "\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train on 57588 samples, validate on 14388 samples\n",
      "Epoch 1/10\n",
      "57588/57588 [==============================] - 42s 725us/step - loss: 0.2593 - accuracy: 0.8999 - val_loss: 0.1223 - val_accuracy: 0.9003\n",
      "Epoch 2/10\n",
      "57588/57588 [==============================] - 40s 690us/step - loss: 0.1034 - accuracy: 0.9235 - val_loss: 0.1017 - val_accuracy: 0.9138\n",
      "Epoch 3/10\n",
      "57588/57588 [==============================] - 47s 821us/step - loss: 0.0990 - accuracy: 0.9278 - val_loss: 0.1010 - val_accuracy: 0.9224\n",
      "Epoch 4/10\n",
      "57588/57588 [==============================] - 46s 804us/step - loss: 0.0973 - accuracy: 0.9293 - val_loss: 0.0940 - val_accuracy: 0.9362\n",
      "Epoch 5/10\n",
      "57588/57588 [==============================] - 42s 722us/step - loss: 0.0962 - accuracy: 0.9307 - val_loss: 0.0951 - val_accuracy: 0.9331\n",
      "Epoch 6/10\n",
      "57588/57588 [==============================] - 46s 800us/step - loss: 0.0952 - accuracy: 0.9305 - val_loss: 0.0934 - val_accuracy: 0.9333\n",
      "Epoch 7/10\n",
      "57588/57588 [==============================] - 46s 794us/step - loss: 0.0949 - accuracy: 0.9309 - val_loss: 0.0933 - val_accuracy: 0.9308\n",
      "Epoch 8/10\n",
      "57588/57588 [==============================] - 48s 836us/step - loss: 0.0943 - accuracy: 0.9306 - val_loss: 0.0934 - val_accuracy: 0.9287\n",
      "Epoch 9/10\n",
      "57588/57588 [==============================] - 48s 839us/step - loss: 0.0940 - accuracy: 0.9303 - val_loss: 0.0915 - val_accuracy: 0.9352\n",
      "Epoch 10/10\n",
      "57588/57588 [==============================] - 48s 837us/step - loss: 0.0936 - accuracy: 0.9313 - val_loss: 0.0910 - val_accuracy: 0.9352\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZIAAAEWCAYAAABMoxE0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzt3Xt4XPV95/H3dy7SyJLGV9keWwabS0HiZkBAErKkoYRA2iW0JQFamoSQepPdNGnZpCHbPklDky5Jus2VJ4EmkBsJS0h5QruwJG1I9kkJYENcwDYOxhgsbGPJV92lmfnuH+eMPJYlayTN0Uiaz+t55tE5v3OZ7wxGH53zO+d3zN0RERGZrFilCxARkdlNQSIiIlOiIBERkSlRkIiIyJQoSEREZEoUJCIiMiUKEpGImNlqM3MzS5Sw7nvM7JdT3Y9IJShIRAAz22Fmg2a2ZET7xvCX+OrKVCYy8ylIRI54Cbi+MGNmZwF1lStHZHZQkIgc8V3gXUXz7wa+U7yCmc03s++YWYeZvWxmf21msXBZ3Mz+3sw6zWw78LujbPtNM9ttZq+a2afNLD7RIs1shZk9aGb7zWybmf1p0bILzWyDmR02s9fM7B/C9pSZfc/M9pnZQTNbb2bLJvreIqNRkIgc8TiQNrOW8Bf8tcD3RqzzFWA+cBLwJoLguTFc9qfA7wHnAm3ANSO2/TaQBU4J17kceN8k6vwB0A6sCN/j78zsd8JlXwK+5O5p4GTgvrD93WHdq4DFwPuBvkm8t8gxFCQiRysclbwFeB54tbCgKFw+7u5d7r4D+F/An4SrvBP4orvvdPf9wP8s2nYZcCXw5+7e4+57gS8A102kODNbBbwR+Ji797v7RuAbRTUMAaeY2RJ373b3x4vaFwOnuHvO3Z9y98MTeW+RsShIRI72XeCPgPcw4rQWsASoAV4uansZWBlOrwB2jlhWcCKQBHaHp5YOAncASydY3wpgv7t3jVHDTcBvAc+Hp69+r+hzPQLca2a7zOxzZpac4HuLjEpBIlLE3V8m6HR/G/BPIxZ3Evxlf2JR2wkcOWrZTXDqqHhZwU5gAFji7gvCV9rdz5hgibuARWbWOFoN7v6Cu19PEFCfBe43s3p3H3L3T7l7K/AGglNw70KkDBQkIse6CbjU3XuKG909R9Dn8BkzazSzE4GbOdKPch/wITNrNrOFwC1F2+4GfgL8LzNLm1nMzE42szdNpDB33wk8BvzPsAP97LDeewDM7AYza3L3PHAw3CxnZm82s7PC03OHCQIxN5H3FhmLgkRkBHd/0d03jLH4z4AeYDvwS+D7wF3hsn8kOH30H8DTHHtE8y6CU2ObgQPA/UBmEiVeD6wmODp5APiku/80XHYFsMnMugk63q9z935gefh+h4EtwC849kICkUkxPdhKRESmQkckIiIyJQoSERGZEgWJiIhMiYJERESmpCqGpV6yZImvXr260mWIiMwqTz31VKe7N423XlUEyerVq9mwYayrOUVEZDRm9vL4a+nUloiITJGCREREpkRBIiIiU1IVfSSjGRoaor29nf7+/kqXMi1SqRTNzc0kkxrwVUTKq2qDpL29ncbGRlavXo2ZVbqcSLk7+/bto729nTVr1lS6HBGZY6r21FZ/fz+LFy+e8yECYGYsXry4ao6+RGR6VW2QAFURIgXV9FlFZHpVdZCM52DvIPu6BypdhojIjKYgOY5DfUN0dg9Gsu99+/axdu1a1q5dy/Lly1m5cuXw/OBgae954403snXr1kjqExEpVdV2tpcilYxzqG+IXN6Jx8p7amjx4sVs3LgRgL/5m7+hoaGBj3zkI0et4+64O7HY6Hl/9913l7UmEZHJ0BHJcaSScQD6h6bviaTbtm3jzDPP5P3vfz/nnXceu3fvZt26dbS1tXHGGWdw6623Dq/7xje+kY0bN5LNZlmwYAG33HIL55xzDq9//evZu3fvtNUsItVNRyTAp/55E5t3HT6m3d3pHcxRm4iRiE8sc1tXpPnkfz5jUvVs3ryZu+++m69//esA3HbbbSxatIhsNsub3/xmrrnmGlpbW4/a5tChQ7zpTW/itttu4+abb+auu+7illtuGW33IiJlpSOS4zAzzCA/zU8jPvnkk7nggguG53/wgx9w3nnncd5557FlyxY2b958zDZ1dXVceeWVAJx//vns2LFjusoVkSqnIxI47pHDix3duMMpSxumrZ76+vrh6RdeeIEvfelLPPnkkyxYsIAbbrhh1PtBampqhqfj8TjZbHZaahUR0RHJOOqScfqHcrhP82FJ6PDhwzQ2NpJOp9m9ezePPPJIReoQERmLjkjGkUrGybszmM1TG3a+T6fzzjuP1tZWzjzzTE466SQuvvjiaa9B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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "* Accuracy on training set: 93.36%\n",
      "* Accuracy on test set: 93.52%\n"
     ]
    }
   ],
   "source": [
    "# train\n",
    "rms = RMSprop()\n",
    "model.compile(loss=contrastive_loss, optimizer=rms, metrics=[accuracy])\n",
    "history = model.fit([tr_pairs[:, 0], tr_pairs[:, 1]], tr_y,\n",
    "          batch_size=128,\n",
    "          epochs=epochs,\n",
    "          validation_data=([te_pairs_1[:, 0], te_pairs_1[:, 1]], te_y_1))\n",
    "\n",
    "# compute final accuracy on training and test sets\n",
    "y_pred = model.predict([tr_pairs[:, 0], tr_pairs[:, 1]])\n",
    "tr_acc = compute_accuracy(tr_y, y_pred)\n",
    "y_pred = model.predict([te_pairs_1[:, 0], te_pairs_1[:, 1]])\n",
    "te_acc = compute_accuracy(te_y_1, y_pred)\n",
    "\n",
    "# Plot training & validation accuracy values\n",
    "plt.plot(history.history['accuracy'])\n",
    "plt.plot(history.history['val_accuracy'])\n",
    "plt.title('Model accuracy')\n",
    "plt.ylabel('Accuracy')\n",
    "plt.xlabel('Epoch')\n",
    "plt.legend(['Train', 'Test'], loc='upper left')\n",
    "plt.show()\n",
    "    \n",
    "# Plot training & validation loss values\n",
    "plt.plot(history.history['loss'])\n",
    "plt.plot(history.history['val_loss'])\n",
    "plt.title('Model loss')\n",
    "plt.ylabel('Loss')\n",
    "plt.xlabel('Epoch')\n",
    "plt.legend(['Train', 'Test'], loc='upper left')\n",
    "plt.show()\n",
    "\n",
    "print('* Accuracy on training set: %0.2f%%' % (100 * tr_acc))\n",
    "print('* Accuracy on test set: %0.2f%%' % (100 * te_acc))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "* Accuracy on training set: 93.36%\n",
      "* Accuracy on test set: 83.94%\n"
     ]
    }
   ],
   "source": [
    "# predict test set 2\n",
    "y_pred = model.predict([tr_pairs[:, 0], tr_pairs[:, 1]])\n",
    "tr_acc = compute_accuracy(tr_y, y_pred)\n",
    "y_pred = model.predict([te_pairs_3[:, 0], te_pairs_3[:, 1]])\n",
    "te_acc = compute_accuracy(te_y_3, y_pred)\n",
    "\n",
    "print('* Accuracy on training set: %0.2f%%' % (100 * tr_acc))\n",
    "print('* Accuracy on test set: %0.2f%%' % (100 * te_acc))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "* Accuracy on training set: 93.36%\n",
      "* Accuracy on test set: 76.16%\n"
     ]
    }
   ],
   "source": [
    "# predict test set 2\n",
    "y_pred = model.predict([tr_pairs[:, 0], tr_pairs[:, 1]])\n",
    "tr_acc = compute_accuracy(tr_y, y_pred)\n",
    "y_pred = model.predict([te_pairs_2[:, 0], te_pairs_2[:, 1]])\n",
    "te_acc = compute_accuracy(te_y_2, y_pred)\n",
    "\n",
    "print('* Accuracy on training set: %0.2f%%' % (100 * tr_acc))\n",
    "print('* Accuracy on test set: %0.2f%%' % (100 * te_acc))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
